[英]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)鎖。
參考文獻:
MongoDB的鎖定類型- https://docs.mongodb.com/manual/faq/concurrency/#what-type-of-locking-does-mongodb-use 。
聚合操作處理數據記錄並返回計算結果。 將游標應用於計算結果。 聚合后對集合的任何更改都不會影響已經計算的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.