Pymongo:如何在文档中插入多个字段的数组?

时间:2016-09-18 07:08:22

标签: python mongodb pymongo

我正在MongoDB python[pymongo]工作。我想在文档中插入多个字段的数组。例如:在集合的下面结构中,我想在所有文档中插入Places Visited数组。我不知道在Mongo的世界中它叫什么。所以我可以插入它。 如何在文档中插入数组?有人可以帮忙吗?

collectionName
    {
            "_id" : "4564345343",
            "name": "Bunty",
            "Basic Intro": "A.B.C.D.",
            "Places Visited": [
                    "1" : "Palace of Dob",
                    "2" : "Palace of Victoria",
                    "3" : "Sahara Desert"
            ]
    }
    {
            "_id"  : "45657865745",
            "name": "Humty",
            "Basic Intro": "B.C.D.",
            "Places Visited": [
                    "1" : "Palace of Pakistan",
                    "2" : "Palace of U.S.A."
                    "3" : "White House"
            ]
    }

1 个答案:

答案 0 :(得分:3)

这应该让你知道如何做到这一点

import pymongo

client = pymongo.MongoClient('yourHost', 30000) # adjust to your needs
db = client.so
coll = db.yourcollection

# show initial data
for doc in coll.find():
    print(doc)

# update data
places_visited = [
    "Palace of Dob",
    "Palace of Victoria",
    "Sahara Desert"
]
coll.update({}, { "$set": { "Places Visited": places_visited } }, multi=True)

# show updated data
for doc in coll.find():
    print(doc)  

您的样本数据应该提供与此类似的输出

daxaholic$ python3 main.py 
{'name': 'Bunty', 'Basic Intro': 'A.B.C.D.', '_id': '4564345343'}
{'name': 'Humty', 'Basic Intro': 'B.C.D.', '_id': '45657865745'}
{'name': 'Bunty', 'Places Visited': ['Palace of Dob', 'Palace of Victoria', 'Sahara Desert'], 'Basic Intro': 'A.B.C.D.', '_id': '4564345343'}
{'name': 'Humty', 'Places Visited': ['Palace of Dob', 'Palace of Victoria', 'Sahara Desert'], 'Basic Intro': 'B.C.D.', '_id': '45657865745'}  

有关详细信息,请参阅docs关于update