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

MongoDB - सभी वस्तुओं को लूप किए बिना जावा में संग्रह की प्रतिलिपि बनाएँ

MongoDB 2.6 में, $out एग्रीगेशन ऑपरेटर जोड़ा गया था जो एक संग्रह के लिए एकत्रीकरण के परिणाम लिखता है। यह जावा ड्राइवर (मैंने जावा ड्राइवर संस्करण 2.12.0 का उपयोग किया) का उपयोग करके एक ही डेटाबेस में किसी अन्य संग्रह में संग्रह में सभी वस्तुओं की सर्वर-साइड कॉपी करने का एक आसान तरीका प्रदान करता है:

// set up pipeline
List<DBObject> ops = new ArrayList<DBObject>();
ops.add(new BasicDBObject("$out", "target")); // writes to collection "target"

// run it
MongoClient client = new MongoClient("host");
DBCollection source = client.getDB("db").getCollection("source")
source.aggregate(ops);

एक-लाइनर संस्करण:

source.aggregate(Arrays.asList((DBObject)new BasicDBObject("$out", "target")));

डॉक्स के अनुसार, बड़े डेटासेट (> 100MB) के लिए आप allowDiskUse विकल्प (एकत्रीकरण मेमोरी प्रतिबंध) का उपयोग करना चाह सकते हैं, हालाँकि जब मैंने इसे> 2GB संग्रह पर चलाया तो मैं उस सीमा में नहीं चला, इसलिए यह लागू नहीं हो सकता है इस विशेष पाइपलाइन के लिए, कम से कम 2.6.0 में।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - सॉकेट के लिए अनुमति अस्वीकृत:/tmp/mongodb-27017.sock

  2. डार्कशील्ड के साथ MongoDB, Cassandra, और Elasticsearch में मास्किंग PII:…

  3. ClusterControl एंटरप्राइज़ संस्करण में अपग्रेड करना

  4. mongodb पर .bson फ़ाइल स्वरूप आयात कैसे करें

  5. mongoDB/mongoose:अद्वितीय अगर अशक्त नहीं है