2

私のコレクションにはいくつかのレコードがあります。キーの 1 つは、datetime/timestamp 値である「available_on」です。これらすべてのフィールドをバッチ更新して間隔を追加したいと考えています。

望ましい使用法は次のようなものです。

coll.update({}, {'$inc': {'available_on': 1 day}}, multi=true)

私は pymongo 1.10 を使用していますが、私が理解していることから、 JavaScript コードをupdateorに提供する方法はありませんfind_and_modify。そして、更新修飾子しか使用できません。

4

1 に答える 1

-3

Python APIは知りませんが、$ whereを使用してJavaScriptのエントリを見つけることができます。たとえば、JavaScriptシェルで次のようになります。

db.collection.find({$where: 'this.field > 3'});

ただし、JavaScriptに基づくエントリの検索には時間がかかる可能性があることを考慮してください。インデックスは使用できないと思います。最終的にはテーブルスキャンになります。

詳細については、公式ドキュメントをご覧ください:http ://www.mongodb.org/display/DOCS/Server-side+Code+Execution

「通常の」方法は、変更したいすべてのエントリを見つけることだと思います。Pythonコードのオブジェクトを変更し、新しく変更したオブジェクトをデータベースに保存します。

于 2011-05-31T23:21:34.740 に答える