如果你在 pymono 中 insert_one 时我有相同 _id 的数据,我该如何更新它?
If i have data with the same _id when you insert_one in pymono, how do i update it?
我刚开始使用pymongo。然后,我创建了一个 for 循环以将数据插入 MongoDB。
但是当插入的数据和已有的MongoDB中的数据是同一个ID时,
我想更新现有 MongoDB 中的数据。
我不知道该怎么做。
#in mongoDB
collection = [
{"_id" : 1234 ,
"like" : ["dog"]
}, ...
]
#in python
data = [
{ "_id" : 1234 ,
"like" : ["cat"]
}, ...
]
client = pymongo.MongoClient(host)
db = client[collection_name]
col = db[documents_name]
for i in data:
col.insert_one(data)
# result in mongoDB
collection = [
{"_id" : 1234 ,
"like" : ["dog","cat"]
}, ...
]
MongoDB 插入带有 ObjectID
的对象,它成为插入文档的主要标识。这通常是在服务器中自动生成以保持唯一性。
如果你想插入你自己的自定义ObjectId(不推荐),那么你需要在bson包中传递带有objectid引用的数据,而不是纯字符串。喜欢
{"_id":ObjectId("..."), ..}
是的,您需要更新(如果存在),因为您需要使用 upsert
版本而不是插入版本。
我刚开始使用pymongo。然后,我创建了一个 for 循环以将数据插入 MongoDB。 但是当插入的数据和已有的MongoDB中的数据是同一个ID时, 我想更新现有 MongoDB 中的数据。 我不知道该怎么做。
#in mongoDB
collection = [
{"_id" : 1234 ,
"like" : ["dog"]
}, ...
]
#in python
data = [
{ "_id" : 1234 ,
"like" : ["cat"]
}, ...
]
client = pymongo.MongoClient(host)
db = client[collection_name]
col = db[documents_name]
for i in data:
col.insert_one(data)
# result in mongoDB
collection = [
{"_id" : 1234 ,
"like" : ["dog","cat"]
}, ...
]
MongoDB 插入带有 ObjectID
的对象,它成为插入文档的主要标识。这通常是在服务器中自动生成以保持唯一性。
如果你想插入你自己的自定义ObjectId(不推荐),那么你需要在bson包中传递带有objectid引用的数据,而不是纯字符串。喜欢
{"_id":ObjectId("..."), ..}
是的,您需要更新(如果存在),因为您需要使用 upsert
版本而不是插入版本。