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

Python Pymongo:如何在文档中插入多个字段的数组?,python,mongodb,pymongo,Python,Mongodb,Pymongo,我正在python[pymongo]中开发MongoDB。我想在文档中插入多个字段的数组。例如:在下面的集合结构中,我想在所有文档中插入访问的位置数组。我不知道在Mongo的世界里它叫什么,所以我可以插入它如何在文档中插入数组?有人能帮忙吗 collectionName { "_id" : "4564345343", "name": "Bunty", "Basic Intro": "A.B.C.D.",

我正在
python
[pymongo]
中开发
MongoDB
。我想在文档中插入多个字段的数组。例如:在下面的集合结构中,我想在所有文档中插入访问的
位置数组。我不知道在
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"
            ]
    }

这应该让你知道怎么做

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.,'u id':'4564345343'}
{'name':'Humty','Basic Intro':'B.C.D.,'u id':'45657865745'}
{'name':'Bunty','参观过的地方':['Dob宫殿','维多利亚宫殿','撒哈拉沙漠'],'Basic Intro':'A.B.C.D.,'u id':'4564345343'}
{'name':'Humty','Places Victoria','Palace of Dob','Palace of Victoria','Sahara Desert','Basic Intro':'B.C.D.,'U id':'45657865745'}

有关更多信息,请参阅关于
更新

您的文档无效。访问过的
地方的元素类型是什么?您能详细说明这一行吗
coll.update({},{“$set”:{“访问过的地方”:访问过的地方}},multi=True)
1。空大括号
{}
2<代码>$set
3
multi=true
最重要的是大括号的流动。第一个是更新的查询部分,空的dict表示简单地匹配所有文档-您当然可以根据您的需要进行调整,但您在问题中没有提到任何查询需要,因此它是空的
$set
是用于在文档中设置字段的运算符。我更新了我的答案,添加了到MongoDB官方文档的链接。最后一个问题是,“匹配所有文档”和“查询需求”是什么意思?如果您能给出这些文档的示例,我们将不胜感激。您必须指定要更新的文档-通常您不想更新集合中的所有文档,但只更新其中的一些文档,您必须使用该查询参数选择它们。如果您传递
{}
,它只会匹配所有文档,因此所有文档都会更新。查询需求-->只是您的需求-我不知道您的应用程序的需求;您可能想更新所有文档,但可能不想更新。在后一种情况下,您必须指定前面提到的查询,以选择要更新的文档子集。您可以在文档中找到示例-因此没有地方编写教程。。。。