MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Un modo migliore per spostare la raccolta MongoDB in un'altra raccolta

Potresti usare un MapReduce lavoro per questo.

MapReduce consente di specificare una raccolta esterna in cui archiviare i risultati.

Quando hai una funzione map che emette ogni documento con il suo _id come chiave e una funzione reduce che restituisce la prima voce (e in questo caso solo perché _id sono univoci) dell'array di valori, MapReduce è essenzialmente un'operazione di copia dal fonte-raccolta all'out-raccolta.

Codice non testato:

db.runCommand(
           {
             mapReduce: "mongo_collection",
             map: function(document) {
                  emit(document._id, document);
             },
             reduce: function(key, values) {
                  return values[0];
             },
             out: {
                  merge:"mongo_his_collection"
             }
           }
         )