MongoDB筆記(二)

來源:互聯網
上載者:User

標籤: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筆記(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.