2014-01-16 149 views
1

如何將數據添加到mongoengine的字典中?
我沒有數據來保存整個字典,我一次只添加一個項目。在MongoEngine中更新DictField?

我已經嘗試使用:

Lookups.objects(pk="52d3a8e318fbaf0e1075de4f").update(push__schools=new_schools) 

但我覺得這是爲什麼不工作的原因是因爲push是將項目添加到列表,而不是一個字典。誰能幫幫我嗎?

回答

4

您應該使用$設置例如:如果你想設置多個按鍵則可以如

Lookups.objects(pk=x).update(set__schools__KEY=VALUE, set__schools__KEY1=VALUE1) 

拍攝鍵的字典

Lookups.objects(pk="52d3a8e318fbaf0e1075de4f").update(set__schools__KEY=VALUE) 

更新和值 - 你可以轉換成一個新的字典,並像這樣更新:

new_schools = {"key1": "value1", "key2": "value2"} 
set_new_schools = dict((("set__schools_%s" % k, v) for k,v in new_schools.iteritems())) 
Lookups.objects(pk=x).update(**set_new_schools) 
+0

感謝您的回覆,如果不是一次輸入一個,而是想添加兩個條目,那是字典?我如何將它添加到'DictField'?我也嘗試過使用'set',但是這取代了整個領域。 – Renier

+0

而我將如何使'KEY'變得不同?目前「KEY」這個詞實際上是每個「VALUE」存儲的關鍵字 – Renier

+0

更新了答案:)但是您需要設置每個字段 – Ross