Python-Pymongo вставка и обновление документов
используя PyMongo, у меня есть набор dict в списке, который я хотел бы представить моему MongoDB. Некоторые из элементов в списке являются новыми записями, а некоторые должны обновляться.
пример:
На Базе Данных Сервера:
[{"_id" : 1, "foo" : "bar}]
отправить в базу данных:
[{"_id" : 1, "foo" : "HELLO"}, {"_id" : 2, "Blah" : "Bloh"}]
В настоящее время я использую следующее для вставки документов, но как бы я сделал что-то подобное выше? Любая помощь приветствуется!
collection.insert(myDict)
3 ответов
использовать :
from pymongo import MongoClient
cl = MongoClient()
coll = cl["local"]["test2"]
data = [{"_id" : 1, "foo" : "HELLO"}, {"_id" : 2, "Blah" : "Bloh"}]
for d in data:
coll.update({'_id':d['_id']}, d, True)
вы также можете использовать сохранить
import pymongo
con = pymongo.MongoClient()
coll = con.db_name.collection_name
docs = [{"_id" : 1, "foo" : "HELLO"}, {"_id" : 2, "Blah" : "Bloh"}]
for doc in docs:
coll.save(doc)
для pymongo 3.0 и более поздних версий:
import pymongo
con = pymongo.MongoClient()
collection = con.db_name.collection_name
docs = [{"_id" : 1, "foo" : "HELLO"}, {"_id" : 2, "Blah" : "Bloh"}]
for d in docs:
collection.update_many({'_id':d['_id']}, d,True)
Ref:http://api.mongodb.org/python/current/api/pymongo/collection.html