В MongoDB 2.6 беше добавен операторът за агрегиране $out, който записва резултатите от агрегирането в колекция. Това осигурява лесен начин да направите копие от страна на сървъра на всички елементи в колекция в друга колекция в същата база данни с помощта на драйвера на Java (използвах драйвер на Java версия 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.