0

PyMongo/MongoDB の $each 修飾子に問題があるようです。という配列があるとしtagsます。

私はこのようにデータベースを更新することができ、それは動作します:

   for tag in tags:
      db_collection.update({'username':username},{'$push':{'docs.tags': tag }})

$eachただし、データベースへの複数の書き込みを実行する代わりに、修飾子を使用する方が効率的であると考えました。理論的には、これは次のようにループなしで記述できます。

db_collection.update({'username':username},{'$push':{'docs.tags': {'$each': tags} }})

しかし、うまくいきません。PyMongo は $each 修飾子などを検出しないようです。それでも保存されますが、結果は次のような辞書になります。

{'$each': [tag1, tag2, ...] }

私の書き方に問題がありますか、それとも実際には心配する必要はありません。のように、最初の方法で実行してもパフォーマンスへの影響はありません。

4

1 に答える 1

0

私のバージョンの mongoDB は、$push の $each 修飾子をサポートしていないことがわかりました。$addToSet は機能しますが、mongoDB をアップグレードすることになります。

于 2013-06-11T22:14:31.257 に答える