在同一更新中更新文档和嵌套文档

时间:2017-05-20 00:32:33

标签: python python-2.7 pymongo

说我有一份如下文件:

doc = { 'A':1,
        'B':2,
        'C':3}

此处我想更新BC A对应某个值,因此:

db.collection.update_one(
                        {"A": 1},
                        {"$set": {"B":4,'C':5}}) 

但是如果文档中有嵌套文档怎么办?我可以同时更新这两个值吗?

doc = { 'A':1,
        'B':2,
        'C':{'D':3}}

在这种情况下,如何在同一更新中覆盖AD这两种情况?

感谢。

1 个答案:

答案 0 :(得分:1)

要在嵌入文档中设置字段,请使用点表示法:

db.collection.update_one({"A": 1},
                         {"$set": {"B": 4, "C.D": 5}}) 

更多信息:

https://docs.mongodb.com/v3.0/reference/operator/update/set/#set-fields-in-embedded-documents