我想知道如何引用返回的文档属性
从查找并在修改中使用它。前任。 :
var totalNoOfSubjects = 5;
db.people.findAndModify( {
query: { name: "Tom", state: "active", rating: { $gt: 10 } },
sort: { rating: 1 },
update: { $set: { average: <reference score value returned by find>/totalNoOfSubjects} }
} );
我的理解是 findAndModify 锁定文档,因此我想使用在查找中找到的属性在修改中执行更新。这将使操作
原子。
我想知道这是否得到 mongo 的支持。
最佳答案
不,您不能在 findAndModify
的更新部分引用找到的文档中的值。在这方面它和 update
是一样的。
因此,您不能以原子方式执行此操作,因为您需要首先获取文档,然后制作 update
或 findAndMondify
以包含从获取的文档中计算出的值。
请参阅 https://jira.mongodb.org/browse/SERVER-458 以了解将来可能会解决的一种方法。
关于Mongodb findAndModify 原子性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14824845/