標籤:db mongo
一、資料插入刪除
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/99/B0/wKioL1lLRY-yfmE4AAB8EMf1VI8268.jpg" title="36020170622121223825.jpg" alt="wKioL1lLRY-yfmE4AAB8EMf1VI8268.jpg" />
(1)Insert函數:db.集合名.insert(obj,opts)obj要插入的文檔,ops為選擇性參數可用來設定寫安全層級。
1.insert函數只能作用於一個集合。
2.如果集合不存在,資料庫服務會自動建立目的地組合。
3.插入文檔時如果沒有指定_id欄位,資料庫服務會自動建立ObjectId對象作為_id的值。
(2)Bulk函數:用來批量處理插入和刪除分為順序Bulk和並行Bulk兩種。
1.初始化Bulk
db.集合名.initializeUnorderedBulkOp() 並行Bulk
db.集合名.initializeOrderedBulkOp() 順序Bulk
2.向Bulk中添加資料更新操作
Bulk.insert()、Bulk.find.update()、Bulk.find.remove()。
3.執行更新操作
調用Bulk.execute()
(3)Remove函數:db.集合名.remove(query,justOne)query為查詢條件,指明要刪除的文檔,空的的話會刪除所有文檔。justone選擇性參數,使用該參數,只會刪除滿足條件的一個文檔。
(4)MMAPv1記憶體配置:如果一個更新操作超過了文檔在磁碟上的預分配的空間,MongoDB將會重新在磁碟上為其分配一塊更大的連續空間。然後將原來的資料複製到新的空間中。
二、MongoDB文檔修改
(1)Update函數
db.集合名.update(query,obj,upset,multi)。
query查詢條件,相當於SQL中的where。
obj更改的內容相當於SQL中的set。
upsert當查詢條件query指明的文檔不存在時,是否需要插入一條新文檔{upsert:true}。
multi當查詢條件query返回多個文檔時,是否需要一次更新所有滿足條件的文檔{multi:true}。
(2)更新操作符
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/99/B6/wKiom1lLde6QrLZdAACmceIj4D0204.jpg" title="36020170622154630752.jpg" alt="wKiom1lLde6QrLZdAACmceIj4D0204.jpg" />
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/99/B8/wKiom1lLgVKTAGuTAACsSkjXQBI278.jpg" title="36020170622163511489.jpg" alt="wKiom1lLgVKTAGuTAACsSkjXQBI278.jpg" />
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/99/B8/wKioL1lLgZSTlIX3AACYcOfa3I8781.jpg" title="01.jpg" alt="wKioL1lLgZSTlIX3AACYcOfa3I8781.jpg" />
三、MongoDB寫安全機制
(1)寫過程:當使用insert/update/remove/save等操作更新集合中的資料時,只是更改了資料在記憶體中的映像,資料並沒有同步的儲存在磁碟上,在更新記憶體中的資料之前,更新操作會被記錄到journal記錄檔中。
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/99/BA/wKioL1lLjsLDEfryAAA9HyFiklo919.jpg" title="02.jpg" alt="wKioL1lLjsLDEfryAAA9HyFiklo919.jpg" />
(2)MongoDB提供了四種層級的寫入安全機制分別是:
Unacknowledged 非確認式寫入(不返回結果,無法知道是否寫入成功)
Acknowledged 確認式寫入(返回結果)(只能確認寫入成功到記憶體中)
Journaled 日誌寫入 (可以判斷是否寫入到磁碟中)
Replica Acknowledged 複製集確認式寫入(寫操作不僅要主節點寫入確認,還得得到從節點的寫入確認)
這四種安全機制按順序增高,效率降低。
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/99/BB/wKioL1lLmbDiaB4qAACTbhg0iwc751.jpg" title="03.jpg" alt="wKioL1lLmbDiaB4qAACTbhg0iwc751.jpg" />
MongoDB筆記(二)