मेरे पास एक ।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
नहीं, आपको मैंगो शेल या प्रोग्राम में किसी प्रकार की स्क्रिप्ट लिखनी होगी जो आइटम के माध्यम से और मैन्युअल रूप से तुलना करेगी।