Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MongoDB使用$push更新与条件匹配的数组元素_Python_Mongodb_Pymongo_Nosql - Fatal编程技术网

Python MongoDB使用$push更新与条件匹配的数组元素

Python MongoDB使用$push更新与条件匹配的数组元素,python,mongodb,pymongo,nosql,Python,Mongodb,Pymongo,Nosql,我第一次一起使用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" : [ {

我第一次一起使用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"}})