簡體   English   中英

mongodb聚合更新集合

[英]mongodb aggregation on updating collections

聚合游標如何對使用的集合中的CRUD(remove R)操作作出反應? 例如:

db.collection('aggregate')
.aggregate([
      {$match: {}},
      {$project:
        { newField: {$literal: "new value"} }
      }
]).each(function(err, doc) {      
  // do editin inserting and removing on 'aggregate' collection    
 print(doc)
});

該算法是否有可能打印在其操作期間添加或更改的記錄?

該算法是否有可能打印在其操作期間添加或更改的記錄?

否。執行聚合操作時,將在集合上應用意圖共享(IS)鎖,這意味着只能同時發生讀取操作。 任何創建,更新或刪除操作都必須等待刪除該鎖,因為更新操作需要應用互斥(X)鎖。

參考文獻:

  1. MongoDB的鎖定類型- https://docs.mongodb.com/manual/faq/concurrency/#what-type-of-locking-does-mongodb-use

  2. MongoDB教程 -MongoDB鎖示例

聚合操作處理數據記錄並返回計算結果。 將游標應用於計算結果。 聚合后對集合的任何更改都不會影響已經計算的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM