2012-12-15 78 views
1

我需要python腳本來更新蒙戈集合在陣列jobsMongoDB的陣列更新

例如,下面的作品蒙戈控制檯完美的罰款,但如何在Python這樣做

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

一個更有趣的一點,我想通過使用$我可以更改數組中的所有值。以下內容在控制檯或腳本中都不起作用。

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

問題是如何在python腳本中完成上述更新。

+0

你使用pymongo來處理mongodb嗎? – danielcorreia

回答

2

它在Python的pymongo update非常相似:

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

當然,你還需要連接到數據庫,並設置posts到該集合。

$不像您想的那樣充當通配符;它標識文檔中與查詢匹配的第一個數組元素。我不認爲有更新所有數組元素的方法。

+0

非常感謝! – com

0

您可以使用pymongo從python與MongoDB進行交互。

關於$操作符更新數組中的所有值,這不是你應該如何使用它。請檢查documentation

數組字段必須作爲查詢選擇器的一部分出現。

有關此主題的MongoDB問題跟蹤器上的open issue

解決方法是讀取文檔,更改數組值的程序端並更新它。