mongodb添加創建修改時間_MongoDB數據庫插入、更新和刪除操作詳解

一、Insert操作

Insert操作是MongoDB插入數據的基本方法,對目標集合使用Insert操作,會將該文檔添加到MongoDB并自動生成相應的ID鍵。文檔結構采用類似JSON的BSON格式。常見的插入操作主要有單條插入和批量插入兩種形式。插入時只是簡單地將文檔存入數據庫中,不進行額外的驗證,也不會執行代碼,所以不存在注入式攻擊的可能。

1、單條插入

2、批量插入

MongoDB對批量插入的支持是通過傳遞多個文檔組成的數組到數據庫來實現的。由于它插入數據是通過發送TCP請求的,這樣只需發送單個TCP請求,且數據庫無需處理大量的消息頭,減少插入時間。這種方式的批量插入一次只能將多個文檔插入到一個集合中,對于插入到多個集合可以循環調用Insert操作。

二、Remove操作

remove函數可以用來刪除數據,它能接受一個文檔作為可選參數,只有符合條件的文檔才會被刪除。刪除數據是永久性的,不能撤銷,也不能恢復,需要謹慎。刪除文檔需要清空整個集合,不如直接刪除集合快。

三、Update操作

update函數用于修改數據庫中的數據,它接收兩個參數,一個是查詢文檔,用來查找要更新的文檔,另一個是修改器文檔,用來描述對找到的文檔做哪些修改。更新操作是原子性的,如果多個更新同時發生,則所有的更新都會執行,但最后的更新是最終贏家。

1、整體更新(文檔替換)

2、局部更新(修改器)

部分更新是通過原子的更新修改器實現的,使用修改器時除了”_id“的值不能改變,其他任何值都能改變。文檔替換是可以改變所有值的。

$inc修改器:將指定屬性的值增加特定的步長,如果鍵不存在則創建它。

$set修改器:用來指定一個鍵的值,如果不存在則創建它。

$push:數組修改器,如果指定的鍵存在,則向已有的數組末尾加入一個元素,鍵不存在則會創建一個新的數組。

3、upsert操作

upsert操作具有saveOrUpdate的功能,如果沒有文檔符合更新條件,則以更新條件和更新文檔為基礎創建一個新的文檔。如果有符合更新條件的文檔,則正常更新。創建新文檔時會以條件文檔作為基礎,將修改器作用其之上。upsert操作是原子性的,高效的。

4、批量更新

批量更新只需將update的第4個參數設為true即可。

四、瞬間完成

上面的插入,刪除和更新操作都是瞬間完成的,它們不需要等待數據庫響應。這樣的實現可以獲取高性能,速度非常快,只會受客戶端發送速度和網絡速度的制約。但由于不會獲取服務器狀態,所以不能保證操作順利完成。這對于付費系統,安全性較高的系統是不可行的,此時對這些操作需要使用它們的安全版本。安全版本會在操作執行后立即運行getLastError命令,來檢查是否執行成功。如果失敗一般會拋出可捕獲的異常,然后我們可以在代碼中處理。

五、請求和連接

數據庫會為每個MongoDB數據庫連接創建一個隊列,存放這個連接的請求,客戶端新發送的請求會被放到隊列的末尾。只有隊列中的請求都執行完畢,后續的請求才會執行。即對于單個連接來說,請求都是順序執行不存在并發問題,所以它總能讀到自己寫的東西。但對于不同的連接就有可能出現讀取和寫入不一致的問題,在驅動程序使用連接池時要特別注意此行為。具體連接池信息可參考官網:MongoDB官網

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542837.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542837.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

51單片機怎么顯示當前時間_51單片機玩轉物聯網基礎篇06-LCD1602液晶顯示器

前言本節我們開始學習LCD1602,LCD1602是字符型液晶顯示屏,在實際項目中應用非常廣泛,學完本節就可以逐步開發一些好玩的應用了。一、基礎知識1.LCD1602簡介LCD1602是字符型液晶顯示模塊,專門用于顯示字母、數字、符號等點陣式LCD&…

在JavaScript中以Hours24:Minutes:Seconds格式獲取當前時間

使用JavaScript獲取當前時間 (Getting current time in JavaScript) To get the current time in JavaScript, we need to use three library functions of Date class, 要獲取JavaScript中的當前時間 ,我們需要使用Date類的三個庫函數, Date getHours(…

聯想服務器如何u盤啟動盤裝系統,聯想如何設置u盤啟動

相信有不少網友都在使用聯想電腦,它的性價比一直受到不少消費者的青睞。接下來教大家聯想如何設置u盤啟動,希望大家能喜歡。聯想如何設置u盤啟動步驟閱讀1、按快捷鍵彈出啟動選項,聯想筆記本一般是F12或者F22、按TAB鍵切換App Menu菜單&#…

c語言負數左移右移_C語言 位運算符的運算規則

位運算是指按照二進制進行的運算,在C語言中,提供了6種的位運算符,他們分別是按位與(&),按位或(|),按位異或(^),按位取反&#xff…

Android 帶著用戶名的SharedPreferences

/*** 設置當前用戶的簽到信息* account&info;account&info** param context* param sign* author jrjin* time 2016-1-5 下午2:27:47*/public static void setSignInfo(Context context, String sign) {String account getAccount(context);if (TextUtils.isEmpty(acc…

python數據分析與可視化-Python數據分析與數據可視化

數據分析、數據挖掘與數據可視化是一個古老的話題,并非什么新生事物。近些年來,借助于計算機軟硬件的飛速發展,數據分析、挖掘、可視化相關理論和技術在各領域的應用更是有了質的飛躍。飯店選址、公交路線與站牌規劃、物流規劃、春運加班車次…

c語言 函數的參數傳遞示例_C-用戶定義的函數示例,沒有參數,沒有返回類型...

c語言 函數的參數傳遞示例Define a function with no argument and no return type in C language. 用C語言定義一個沒有參數且沒有返回類型的函數。 In the program, we have function named fun1 which has no argument and no return type (void is the return type - that…

的標題形狀工具在哪里_自媒體如何搜集素材?標題、文章、圖片素材收集3大途徑!...

文:老彭自媒體大家好,我是老彭,很多人覺得做自媒體寫內容很難,每天想寫點東西又感覺無從下手,那么到底是什么原因造成的呢?其實最主要的原因還是自己平時看的太少,和素材儲備不足所導致的。大家…

Python中的條件語句(if,if ... else,if ... elif ... else和嵌套的if)

Conditional statements decide the flow of program execution. In programming whenever we need to make execute any special blocks based on the decision then we use the conditional statements. 條件語句決定程序執行的流程。 在編程中,只要我們需要根據決…

控制臺應用和空項目有什么區別_在公司做的項目和自己在學校做的有什么區別?...

前言 只有光頭才能變強。 文本已收錄至我的GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家還是學生的時候有沒有這個問題:公司做的項目和自己在學校練手的項目有多大的區別。我以前在學校跟著視頻做一些項目練手,總感覺公司做的東西會要難很多,不知…

小樣本點云深度學習庫_合成魯棒的對抗樣本來欺騙深度學習分類器

本期一諾sec關注深度學習系統安全問題,推薦一篇來自ICML 2018會議論文Synthesizing Robust Adversarial Examples。論文鏈接http://proceedings.mlr.press/v80/athalye18b.html。深度模型對于對抗樣本具有高度的脆弱性,這已經是得到大家印證的事實。自從…

stl字符串去除空格_在列表中推送字符并在C ++ STL中將它們打印為空格

stl字符串去除空格In this example, we are declaring a character list and pushing the characters from A to Z using a for loop and push_back() function then printing the value of the vector separated by space. 在此示例中,我們聲明了一個字符列表&…

java數據類型_JAVA基礎篇(數據類型)

首先請大家想想這幾個問題:1.java數據類型是什么?2.Java數據類型有什么用?上一節(JAVA基礎篇(函數))有個add函數,里面有兩個int類型,int類型就是整數的意思,這…

SharePoint CAML In Action——Part I

閱讀目錄 CAML In Action接下來在SharePoint中&#xff0c;我們經常要對List進行操作&#xff0c;比如要從List中取出相應的ListItem&#xff0c;利用CAML是個好辦法。在沒了解CAML之前&#xff0c;我是這樣取數據的&#xff1a; MyList.Items.Cast<SPListItem>().ToList…

地圖統計_博客 城市訪問量統計并且通過Echarts+百度地圖展示

本篇講解一下 如何在Vue 中使用 Echarts 百度地圖 統計 博客訪問量 并且通過QQWry 解析 ip 地址 利用Echarts 展示出來效果圖如下&#xff1a;1.純真Ip地址庫 QQWry這是我在github上找的 java版本的 解析 qqwry的1.1 maven 引入 qqwry<dependency> <grou…

修改console緩存大小_更改緩存的行大小將如何影響其他參數?

修改console緩存大小Prerequisites: Memory mapping and its types 先決條件&#xff1a; 內存映射及其類型 While designing a cache system of a PC, the size of cache lines is an important parameter. 在設計PC的緩存系統時&#xff0c;緩存行的大小是重要的參數。 In …

win10必須禁用的服務_Win10系統中這3個無用的設置,奉勸你還是早點關閉吧!

在PC端所有的操作系統中&#xff0c;占據市場份額最大的莫過于微軟發布的windows系統。其中最經典的莫過于XP和win7&#xff0c;無奈微軟已經停更了這兩個操作系統&#xff0c;所以為了電腦的安全著想&#xff0c;很多人都直接升級更新至最新版的win10系統&#xff0c;目前win1…

Android 布局練習

要求&#xff1a;使用多種布局完成以下練習。 1.要求效果 完成效果 代碼&#xff1a; <?xml version"1.0" encoding"utf-8"?> <…

有危害嗎_涂料漆對身體有害嗎?涂料漆危害怎么預防

目前很多人都會通過涂料漆來進行墻面裝飾&#xff0c;用它來對墻面進行裝飾是可以馬上的改善墻壁的狀態&#xff0c;但有些人也擔心它會對身體有害&#xff0c;涂料漆對身體有害嗎?由于擔心涂料漆會給健康帶來危害&#xff0c;很多人都想要預防&#xff0c;那涂料漆危害怎么預…

小寫大寫轉換_小寫到大寫轉換器JavaScript工具| 網絡應用項目

小寫大寫轉換Hi! At times, beginners always find it hard getting the application of the theory they learn in programming or a particular language. 嗨&#xff01; 有時&#xff0c;初學者總是很??難在編程或特定語言中應用他們學到的理論。 In this article, well…