1

jobsPythonスクリプトでmongoコレクションの配列の値を更新する必要があります

たとえば、次の例は mongo コンソールでは問題なく動作しますが、python で行う方法は次のとおりです。

posts.update({'_id':213},{'$set':{"jobs.1.title":1}}, false, true)

もう1つの興味深い点は、を使用$して配列内のすべての値を変更できると考えたことです。以下は、コンソールでもスクリプトでも機能しません。

posts.update({'_id':213},{'$set':{"jobs.$.title":1}}, false, true)

問題は、Python スクリプトで上記の更新を行う方法です。

4

2 に答える 2

2

Python の pymongo と非常によく似ていますupdate:

posts.update({'_id':213}, {'$set':{"jobs.1.title":1}}, upsert=False, multi=True)

もちろん、データベースに接続しpostsてそのコレクションに設定する必要もあります。

$あなたが考えているようにワイルドカードとして機能しません。クエリに一致するドキュメント内の最初の配列要素を識別します。そのようなすべての配列要素を更新する方法はないと思います。

于 2012-12-15T15:23:39.753 に答える
0

pymongoを使用して、Python から MongoDB を操作できます。

配列内のすべての値を更新する $ 演算子に関しては、それを使用する方法ではありません。ドキュメントを確認してください。

配列フィールドは、クエリ セレクタの一部として表示される必要があります。

このトピックに関して、MongoDB イシュー トラッカーに未解決の問題があります。

回避策は、ドキュメントを読み、配列値のプログラム側を変更して更新することです。

于 2012-12-15T15:24:06.723 に答える