मेरे पास दो मोंगो संग्रह हैं, जो एक उत्पादन env और दूसरे को परीक्षण env को संदर्भित करता है। मैं उनमें से दो के बीच एक अंतर की तुलना कैसे करूं? मैंने उन्हें एक बासन के लिए डंप करने और फिर एक जेसन में बदलने की कोशिश की। लेकिन मैं सिर्फ उन पर एक साधारण अंतर नहीं कर सकता क्योंकि सॉर्टिंग भिन्न हो सकती है और जेसन फ़ाइल सॉर्ट करने के लिए बहुत बड़ी है।दो संग्रहों पर एक मोंगो डिफ की तुलना करें
उत्तर
शैल में निम्न का प्रयास करें, यह प्रत्येक आइटम को संग्रह में पुन: सक्रिय करेगा और आईडी के आधार पर प्रत्येक दस्तावेज़ से मिलान करने का प्रयास करेगा। हम तो 2 संग्रह
function compareCollection(col1, col2){
if(col1.count() !== col2.count()){
return false;
}
var same = true;
var compared = col1.find().forEach(function(doc1){
var doc2 = col2.findOne({_id: doc1._id});
same = same && JSON.stringify(doc1)==JSON.stringify(doc2);
});
return same;
}
फिर फोन की तुलना करने के लिए एक जावास्क्रिप्ट समारोह बना सकते हैं
> db.col1.find()
{ "_id" : 1, "item" : 1 }
{ "_id" : 2, "item" : 2 }
{ "_id" : 3, "item" : 3 }
{ "_id" : 4, "item" : 4 }
> db.col2.find()
{ "_id" : 1, "item" : 1 }
{ "_id" : 2, "item" : 2 }
{ "_id" : 3, "item" : 3 }
{ "_id" : 4, "item" : 4 }
है जैसे निम्नलिखित:
कहते हैं कि हम 2 संग्रह db.col1
और db.col2
है
> compareCollection(db.col1, db.col2)
true
यदि हमारे पास तीसरा संग्रह है db.col3
> db.col3.find()
{ "_id" : 1, "item" : 1 }
और यह एक
> compareCollection(db.col1, db.col3)
false
हम अपेक्षित परिणाम मिल जाएगा की तुलना करें।
हम भी एक 4 संग्रह जो मिलान दस्तावेजों लेकिन अलग डेटा db.col4
> db.col4.find()
{ "_id" : 1, "item" : 10 }
{ "_id" : 2, "item" : 2 }
{ "_id" : 3, "item" : 3 }
{ "_id" : 4, "item" : 4 }
है है, तो यह भी वापस आ जाएगी false
> compareCollection(db.col1, db.col4)
false
आप क्षेत्रों में से केवल एक उप समूह की तुलना करने की जरूरत है (उदाहरण के लिए आपको आईडी की तुलना करने की आवश्यकता नहीं है), आप इसे निम्न तरीके से कर सकते हैं। , सीएसवी को संग्रह निर्यात क्षेत्रों को निर्दिष्ट तुलना करने के लिए (source):
mongoexport -d <db_name> -c <col_name> --fields "field1,field2" --type=csv | sort > export.csv
और फिर csv फ़ाइलें पर एक साधारण diff
है। ध्यान दें कि सीएसवी फ़ाइल में कॉलम ऑर्डर --field
विकल्प से मेल खाता है।
सकारात्मक:
- आप तुलना करने के लिए क्षेत्रों के सबसेट निर्दिष्ट कर सकते हैं।
- आप रिकॉर्ड के वास्तविक अंतर को देख सकते हैं।
विपक्ष:
- पूरा रिकॉर्ड तुलना करने के लिए, आप सभी संभावित क्षेत्रों जानना चाहते हैं।
mongoexport
विशाल डेटाबेस के लिए धीमा हो सकता है।
मॉन्गोड की तुलना करने के लिए स्टूडियो 3T का उपयोग करें। आप संग्रह, डीबी, एकल रिकॉर्ड की तुलना भी कर सकते हैं। बस आपको मोंगो डाउनलोड और कनेक्ट करने की आवश्यकता है।
use db_name
db.runCommand('dbHash')
यह प्रत्येक संग्रह के लिए हैश मान देता है: यहाँ डाउनलोड लिंक https://studio3t.com/
शायद आप उस विशिष्ट टूल में इसे कैसे करें इस पर कुछ ट्यूटोरियल में कुछ लिंक जोड़ सकते हैं। – testuser
विशेष रूप से क्योंकि यह सुविधा मुफ्त संस्करण का हिस्सा नहीं है ("सस्ता" लाइसेंस भी नहीं), लेकिन केवल एंटरप्राइज़ संस्करण का ... यदि किसी के पास उपकरण है, तो असली ट्यूटोरियल का लिंक यहां है: https : //studio3t.com/whats-new/diff-mongodb/ utm_source = पोस्ट और utm_medium = अमेरिकन प्लान और utm_campaign = 3tslpage – testuser
dbHash चाल किया गया है। फिर आप उनकी तुलना कर सकते हैं। यह बहुत सटीक है।
- 1. 2 mongodb संग्रहों की तुलना कैसे करें?
- 2. गैर-रिफ्लेक्सिव तत्वों वाले संग्रहों की तुलना
- 3. डुप्लिकेट मोंगो ऑब्जेक्ट की संभावना दो अलग-अलग संग्रहों में उत्पन्न की जा रही है?
- 4. दो एक्सएमएल स्कीमा की तुलना
- 5. दो एनएसएसआरिंग्स की तुलना करें
- 6. jQuery दो डीओएम ऑब्जेक्ट की तुलना करें? एक तत्व पर
- 7. दो UIImages की तुलना करें
- 8. दो तिथियों की तुलना करें
- 9. रूबी में दो एक्सएमएल दस्तावेज़ डिफ करें?
- 10. पांडा: दो डेटाफ्रेम का डिफ
- 11. रंगों की दो सूचियों की तुलना करें
- 12. दो डेटाबेस की संरचनाओं की तुलना करें?
- 13. दो वस्तुओं की तुलना।
- 14. दो प्रश्नों की तुलना कैसे करें?
- 15. (कोल्डफ्यूजन) दो तिथियों की तुलना करें,
- 16. एक्सेल दो कॉलम की तुलना करें और
- 17. दो Arrays की तुलना
- 18. दो ऑब्जेक्ट्स की तुलना
- 19. की तुलना दो ArrayList
- 20. दो सीजीआरईटी की तुलना
- 21. दो ऑडियो फ़ाइलों की तुलना करें
- 22. वर्ष के आधार पर दो तिथियों की तुलना करें,
- 23. दो कार्बन टाइमस्टैम्प की तुलना कैसे करें?
- 24. क्लोजर: "=" संग्रहों में मूल्यों की तुलना करता है, यह इस मामले में दो सूचियों की तुलना क्यों नहीं कर सकता?
- 25. दो regexps की तुलना कैसे करें?
- 26. मोंगोस ऑब्जेक्ट को दो संग्रहों में सहेजना
- 27. दो बाइट Arrays की तुलना करें? (जावा)
- 28. दो NSIndexPaths की तुलना कैसे करें?
- 29. दो fxcop परिणामों की तुलना करें
- 30. सी ++ दो स्ट्रिंग अक्षरों की तुलना करें
यह बहुत उपयोगी है, धन्यवाद! –