I MongoDB 2.6 blev $out-aggregationsoperatoren tilføjet, som skriver resultaterne af aggregeringen til en samling. Dette giver en enkel måde at lave en server-side kopi af alle elementerne i en samling til en anden samling i den samme database ved hjælp af Java driveren (jeg brugte Java driver version 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);
One-liner-versionen:
source.aggregate(Arrays.asList((DBObject)new BasicDBObject("$out", "target")));
Ifølge dokumenterne kan du for store datasæt (>100MB) bruge muligheden allowDiskUse (Aggregation Memory Restrictions), selvom jeg ikke stødte på den grænse, da jeg kørte den på en>2GB-samling, så den gælder muligvis ikke til denne særlige pipeline, i det mindste i 2.6.0.