MongoDB 之 幽靈操作避免

2021-09-07 15:46:26 字數 395 閱讀 8226

進行靜態載入資料到集合的過程中可能會出現。

假設建立乙個任務(job):在mongodb中進行千條更新操作,開始後迅速終止任務,終止所有更新操作,但依然發現新的更新任務在不斷出現,即使任務已經停止。

原因是:如果使用非應答式寫入(unacknowledge write)載入資料,應用觸發寫入操作的速度可能比mongodb處理速度快。如果mongodb有準備,這批寫入將會堆積在作業系統中的套接字快取(socket buffer)中。此時,終止掉mongodb正在進行的寫入操作後,mongodb開始處理快取區的寫入操作。因為,這批操作已經被mongodb所接收了,只不過暫時還沒有進行處理。

避免這種幽靈操作的最佳方案是:使用應答式寫入,即每次寫入操作都等待上次寫入完成後才會進行下去,而非在上一次寫入進入快取區時就進行下一次操作。

mongodb幽靈操作的解決方案

但是上面的解決方案寫得很含糊,僅僅是提到了 應答式寫入 那麼應答式寫入的具體mongodb sql例子是啥?下面內容來自 1 w 該選項要求確認操作已經傳播到指定數量的mongod例項或指定標籤的mongod例項 w可選的的值 w 1 應答式寫入 要求確認操作已經傳播到指定的單個mongod例項或副...

MongoDB基礎操作之CRUD Read

db.collection.find 投射 全文件查詢 db.collection.find 文件定義了對讀取結果進行的投射 db.find 讀取全部文件 既不篩選,也不投射 db.find db.find pretty 例子 db.accounts.find 更清楚的列印文件 db.account...

MongoDB學習之基本操作

資料庫 database 集合 collection 文件 document 在mongodb中,資料庫和集合都不需要建立,資料庫和集合會在第一次插入文件時建立.顯示所有資料庫 show dbs進入到指定的資料庫中 use 資料庫名顯示當前資料庫所有集合 show collections向指定集合插...