update()函数忽略mongo中的limit()

时间:2017-08-03 21:14:16

标签: mongodb python-2.7 mongoengine

假设我在数据库中有10个Item文档。

让我们使用limit()检索3个符合某些条件的Item文档。

documents = Item.objects(somefield=somecondition).limit(3)

现在,如果我这样做

documents.update(),mongoengine更新了查询所匹配的数据库中的所有文档,而不仅仅是我限制查询的3个文档。

我也尝试在参数中设置multi=False,但只有一个文档得到更新。

无论如何都要在查询时进行更新,而不是逐个循环遍历文档?

1 个答案:

答案 0 :(得分:0)

据我所知,MongoDB提供的问题没有可用的解决方案。但是你可以试试这样的东西

documents.forEach(
    function (e) {
        e.field = 'value';
        db.collection.save(e);
    }
);