के साथ मोंगोडीबी में थोक आवेषण/अपडेट करें। मैं पोंगोन्गो/पांडा के साथ mongoDb में अद्यतन/सम्मिलित कैसे करूं? मुझे जो त्रुटि मिलती है वह batch op errors occurred
मुझे कारण है क्योंकि मैं "_id"
सेट करता हूं, जिसे मैं करना चाहता हूं। मैं कोड पहले रन पर ठीक चलाता हूं, लेकिन दूसरे रन पर यह विफल रहता है। मैं वर्कफ़्लो में पांडा का उपयोग करना चाहता हूं। डेटा में डेटाटाइम ऑब्जेक्ट होता है।प्योंमोन्गो
के साथ upsert = True
के लिए वाक्यविन्यास पूरी तरह से अलग है। update
के साथ एक कुशल समाधान सहायक होगा, जहां "_id"
या "qid"
सेट किया जा सकता है। लेकिन, पाइथन डेटाटाइम ऑब्जेक्ट्स हैं!
InSQL = 'SELECT * from database2.table2 '
sqlOut = pd.read_sql(InSQL,cxn)
sqlOut['_id'] = "20170101" + ":"+ sqlOut['Var']
dfOut = sqlOut.to_json(orient='records',date_format='iso')
try:
db["test"].insert_many(json.loads(dfOut))
except Exception as e: print e
मैं एक pt इनाम है, जो कोई जवाब नहीं के साथ, समाप्त हो गई है दे दिया है। हम्म ...
मोंगो ने 'स्ट्रिंग बेस इनपुट' का उपयोग किया और किसी भी परिवर्तनीय डालने (केवल ऑपरेटर) की अनुमति नहीं दी [इसे जांचें] (http://stackoverflow.com/questions/2803852/python-date-string-to-date-object), 'json.loads (dfOut)' आप स्थानीय चर को प्रविष्टि के रूप में सम्मिलित नहीं कर सकते! प्राथमिक कुंजी 'YYYYmmDDHHMMSS' +' काउंटर वैल्यू ' – dsgdfg
आप' बल्कवाइट एरर 'विवरण में खोद सकते हैं और क्या हो रहा है इसके बारे में एक बेहतर विचार प्राप्त कर सकते हैं। हो सकता है कि आपकी व्यक्तिगत रूप से परिभाषित आईडी डुप्लीकेट हों या 12-बाइट सीमा का उल्लंघन करें। विवरण के लिए http://stackoverflow.com/questions/30355790/mongodb-bulk-write-error देखें। –
तथ्य यह है कि _id पहली बार काम करता है, मुझे बताता है कि 12-बाइट सीमा चिंता नहीं है। हां, _id या gid डुप्लिकेट हैं और अपडेट के लिए आवश्यक हैं। – Merlin