我想知道如何引用返回的文档属性
从查找并在修改中使用它。前任。 :

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 是一样的。

因此,您不能以原子方式执行此操作,因为您需要首先获取文档,然后制作 updatefindAndMondify 以包含从获取的文档中计算出的值。

请参阅 https://jira.mongodb.org/browse/SERVER-458 以了解将来可能会解决的一种方法。

关于Mongodb findAndModify 原子性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14824845/

10-12 21:56