[英]MongoDB update an array element matching a condition using $push
我第一次使用Python和Mongo,在文檔中找不到我需要的東西。
所以我的數據對象看起來像這樣
{
"_id" : ObjectId("54d372597d74523bc6991b9b"),
"id_user" : "2000001",
"date_registrated" : "2015-01-21 12:11:28.185",
"user" : "Bogdan",
"gender" : "M",
"email" : "a@a.com",
"charachters" : [
{
"quest_info" : "TUT_var,1421842359 STARTAREA,4 ",
"char_name" : "Testarion"
}
]
}
我想將新字段添加到現有角色中,例如
party_user = {"party_name": "name",
"admin": 0}
最后,我想得到這個:
{
"_id" : ObjectId("54d372597d74523bc6991b9b"),
"id_user" : "2000001",
"date_registrated" : "2015-01-21 12:11:28.185",
"user" : "Bogdan",
"gender" : "M",
"email" : "a@a.com",
"charachters" : [
{
"quest_info" : "TUT_var,1421842359 STARTAREA,4 ",
"char_name" : "Testarion"
**"parties" : [{party 1},{party 2}]**
}
]
}
問題是如何創建查詢呢? 我已經嘗試過類似的方法,但是失敗了:
db.collection('MyDB').update(
{"char_name": "Testarion"},
{"$push": {
"charachters": {"parties": party_user}
}})
我對Mongo還是很陌生,還沒有掌握所有內容,但是請您告訴我我做錯了什么嗎? 那有可能嗎?
在更新查詢中對該數組元素使用“ $”:
db.collection.update(
{"charachters.char_name": "Testarion"},
{"$push": {"charachters.$.parties": "party_user"}})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.