MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मैं pymongo का उपयोग करके MongoDB से एक संग्रह की प्रतिलिपि कैसे बना सकता हूं और दूसरे खाली संग्रह में पेस्ट कर सकता हूं?

आपके कोड उदाहरण के साथ समस्या यह है कि find() एक डेटाबेस कर्सर लौटाता है संग्रह के लिए, संग्रह के सभी दस्तावेज़ नहीं। इसलिए जब आप remove home . से सभी दस्तावेज़ संग्रह, कर्सर एक खाली संग्रह को भी इंगित करेगा।

उसी सर्वर में किसी संग्रह को दूसरे संग्रह में कॉपी करने के लिए, आप MongoDB एकत्रीकरण ऑपरेटर $match और $out

pipeline = [ {"$match": {}}, 
             {"$out": "destination_collection"},
]
db.source_collection.aggregate(pipeline)

अपने उदाहरण कोड का उपयोग करते हुए, अभी आप कर सकते हैं

source = db["source_collection"]
destination = db["destination_collection"]

# Remove all documents, or make modifications. 
source.remove({}) 

# Restore documents from the source collection.  
for doc in destination: 
      source.insert(doc)
# or instead you can just use the same aggregation method above but reverse the collection name. 

नोट :db.collection.copyTo() MongoDB v3.0 के बाद से पदावनत कर दिया गया है।

यदि आप किसी अन्य MongoDB सर्वर पर कॉपी करना चाहते हैं, तो आप का उपयोग कर सकते हैं। db.cloneCollection() . PyMongo में यह एक कमांड होगा जैसे नीचे:

db.command("cloneCollection", **{'collection': "databaseName.source_collection", 'from': "another_host:another_port"})

आपके समग्र लक्ष्य के आधार पर, आपको MongoDB बैकअप विधियां मिल सकती हैं। उपयोगी।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. दिनांक (महीने) के अनुसार नोड.जेएस और मोंगोडब का उपयोग करके परिणामों को फ़िल्टर और पुन:व्यवस्थित करें

  2. मैं mongoDB में डबल सरणी कैसे फ़्लैट कर सकता हूं?

  3. Mongodb के साथ अंतिम X मिनट डेटा प्राप्त करने की क्वेरी

  4. एक सीमा पर MongoDB एकत्रीकरण

  5. NodeJS एक्सप्रेस निर्भरता इंजेक्शन और डेटाबेस कनेक्शन