2013-06-11 30 views
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, ...] } 

有沒有用我寫這還是這其實沒有什麼可擔心的方式的問題。如果我以第一種方式進行操作,是否會對性能產生影響?

回答

0

事實證明,我的mongoDB版本不支持$ push的$ each修飾符。 $ addToSet的作品,但我會最終升級我的mongoDB。