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