/ / mongodb संग्रह में वस्तुओं को आयात करना जो डुप्लिकेट नहीं हैं जो उनके _id हटाए गए हैं - mongodb

वस्तुओं को मोंगोडब संग्रह में आयात करना जो डुप्लिकेट नहीं हैं जिनके पास _id हटा दिया गया है - mongodb

मेरे पास एक ।json फ़ाइल जिसे मैंने mongoexport का उपयोग करके बनाया है और फिर मैंने ऑब्जेक्ट्स से _id तत्व हटा दिए हैं। मैं इस json फ़ाइल को लेना चाहूंगा और फिर इसे mongoimport का उपयोग करके किसी अन्य संग्रह में आयात कर सकता हूं, लेकिन मैं किसी भी ऑब्जेक्ट को छोड़ना चाहता हूं जो पहले से ही संग्रह में किसी भी चीज के डुप्लिकेट हैं (_us टैग के बाद से यह डेटा में मौजूद नहीं है) आयात किया जा रहा है)। क्या इसे करने का कोई तरीका है?

उत्तर:

उत्तर № 1 के लिए 1

कोई भी लक्ष्य संग्रह पर सभी प्रमुख क्षेत्रों पर एक अद्वितीय सूचकांक क्रेट कर सकता है, तो नियमित रूप से मोंगोइमपोर्ट का उपयोग करें, यह स्वचालित रूप से आपके लिए दोहराव की अनदेखी करेगा।

उदाहरण में: imp संग्रह में 2 दस्तावेज़ हैं

>db.imp.find()
{ "_id" : ObjectId("559eb4d112bc601a37ba6c0e"), "a" : 1, "b" : 1, "c" : 1, "d" : "first" }
{ "_id" : ObjectId("559eb4e512bc601a37ba6c0f"), "a" : 2, "b" : 2, "c" : 2, "d" : "second" }

ए, बी और सी प्रमुख क्षेत्र हैं, उन क्षेत्रों पर एक अद्वितीय सूचकांक बनाते हैं

> db.imp.ensureIndex({a:1,b:1,c:1},{unique:true})

json फ़ाइल (imp.json) डुप्लिकेट मौजूदा (पहले दो) रिकॉर्ड के साथ + एक और डुप्लिकेट पर a: 3, b: 3 और c: 3

{ "a" : 1, "b" : 1, "c" : 1, "d" : "one" }
{ "a" : 2, "b" : 2, "c" : 2, "d" : "two"}
{ "a" : 3, "b" : 3, "c" : 3, "d" : "third"}
{ "a" : 3, "b" : 3, "c" : 3, "d" : "three"}

mongoimport, mongo 3.0 पर आप उपयोग कर सकते हैं --maintainInsertionOrder इनपुट स्रोत में उनकी उपस्थिति के क्रम में दस्तावेजों को सम्मिलित करता है

$ mongoimport -d imp -c imp --file imp.json

आयात परिणाम और डुप्लिकेट कुंजी त्रुटि सूचकांक पर

connected to: 127.0.0.1
2015-07-10T01:14:40.457+0700 insertDocument :: caused by :: 11000 E11000 duplicate key error index: imp.imp.$a_1_b_1_c_1  dup key: { : 1, : 1, : 1 }
2015-07-10T01:14:40.458+0700 insertDocument :: caused by :: 11000 E11000 duplicate key error index: imp.imp.$a_1_b_1_c_1  dup key: { : 2, : 2, : 2 }
2015-07-10T01:14:40.458+0700 insertDocument :: caused by :: 11000 E11000 duplicate key error index: imp.imp.$a_1_b_1_c_1  dup key: { : 3, : 3, : 3 }
2015-07-10T01:14:40.459+0700 imported 4 objects

अंत में छोटा सा भूत संग्रह की तरह दिखेगा

> db.imp.find()
{ "_id" : ObjectId("559eb4d112bc601a37ba6c0e"), "a" : 1, "b" : 1, "c" : 1, "d" : "first" }
{ "_id" : ObjectId("559eb4e512bc601a37ba6c0f"), "a" : 2, "b" : 2, "c" : 2, "d" : "second" }
{ "_id" : ObjectId("559eba10394aeed912d00d31"), "a" : 3, "b" : 3, "c" : 3, "d" : "third" }

उममीद है कि इससे मदद मिलेगी!


जवाब के लिए 0 № 2

नहीं, आपको मैंगो शेल या प्रोग्राम में किसी प्रकार की स्क्रिप्ट लिखनी होगी जो आइटम के माध्यम से और मैन्युअल रूप से तुलना करेगी।