2017-08-03 5 views
0

私はItemの10のドキュメントをデータベースに持っています。update()関数はmongoのlimit()を無視します

limit()を使用して、条件に一致するItemの3つのドキュメントを取得できます。

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

私は

documents.update()をすれば今、mongoengineは、私は私のクエリが限られているクエリだけではなく、3つの文書にマッチした、データベース内のすべての文書を更新します。

また、パラメータでmulti=Falseを設定しようとしましたが、1つのドキュメントだけが更新されました。

ドキュメントを1つずつループするのではなく、自分自身を照会しながら更新する必要はありますか?

答えて

0

私が知る限り、MongoDBが提供する問題に対しては解決策はありません。しかし、あなたはこのような何かを試すことができる

documents.forEach(
    function (e) { 
     e.field = 'value'; 
     db.collection.save(e); 
    } 
); 
関連する問題