MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB - salin koleksi di java tanpa mengulang semua item

Di MongoDB 2.6, operator agregasi $out ditambahkan yang menulis hasil agregasi ke koleksi. Ini menyediakan cara sederhana untuk melakukan salinan sisi server dari semua item dalam koleksi ke koleksi lain dalam database yang sama menggunakan driver Java (saya menggunakan driver Java versi 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);

Versi satu baris:

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

Menurut dokumen, untuk kumpulan data besar (> 100MB) Anda mungkin ingin menggunakan opsi allowDiskUse (Pembatasan Memori Agregasi), meskipun saya tidak mencapai batas itu ketika saya menjalankannya pada koleksi> 2GB, jadi itu mungkin tidak berlaku ke saluran khusus ini, setidaknya di 2.6.0.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. C# - MongoDB - Perbarui elemen di dalam Dokumen Bersarang

  2. Mengonversi ObjectId Tipe BSON ke JSON (Menyimpan di Mongodb) -Java

  3. Node.js + MongoDB:masukkan satu dan kembalikan dokumen yang baru dimasukkan

  4. Bidang hasil Mongoose/MongoDB muncul tidak terdefinisi dalam Javascript

  5. Driver MongoDb c# menemukan item dalam array berdasarkan nilai bidang