繁体   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