2013-08-22 3 views
9

पायमोंगो का उपयोग करके, मेरे पास एक सूची में dict का एक सेट है जिसे मैं अपने मोंगोडीबी को सबमिट करना चाहता हूं। सूची में से कुछ आइटम नई प्रविष्टियां हैं, और कुछ अपडेट करना है।पायथन - पिमोंगो सम्मिलित करें और अपडेट करें दस्तावेज़

उदाहरण:

सर्वर डाटाबेस पर:

[{"_id" : 1, "foo" : "HELLO"}, {"_id" : 2, "Blah" : "Bloh"}] 

मैं वर्तमान में दस्तावेजों को सम्मिलित करने के लिए निम्नलिखित का उपयोग कर रहा है, लेकिन कैसे:

[{"_id" : 1, "foo" : "bar}] 

डेटाबेस के लिए भेजने के लिए क्या मैं ऊपर बताए गए कुछ करता हूं? किसी भी मदद की सराहना की है!

collection.insert(myDict) 

उत्तर

12

उपयोग upsert विकल्प:

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) 
+2

क्या एक एपीआई कॉल के साथ ऐसा करने का कोई तरीका है? बेहतर perfomances के लिए, "थोक" अद्यतन की तरह कुछ। – John

+0

@ जॉन क्या आप इसे थोक में करने का कोई तरीका समझते थे? insert_many – Sam

6

तुम भी उपयोग कर सकते हैं save

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) 
+1

_ डॉक्स से कुछ ऐसा ही है: _ ** अस्वीकृत ** - ['insert_one()'] का उपयोग करें (http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection। Collection.insert_one) या ['replace_one()'] (http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.Collection.replace_one) इसके बजाए। – luckydonald

संबंधित मुद्दे