MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Bessere Möglichkeit, die MongoDB-Sammlung in eine andere Sammlung zu verschieben

Sie könnten ein MapReduce verwenden Job dafür.

Mit MapReduce können Sie eine Out-Sammlung angeben, in der die Ergebnisse gespeichert werden.

Wenn Sie eine Map-Funktion haben, die jedes Dokument mit seiner eigenen _id als Schlüssel ausgibt, und eine Reduce-Funktion, die den ersten (und in diesem Fall nur, weil _ids eindeutig sind) Eintrag des Werte-Arrays zurückgibt, ist MapReduce im Wesentlichen ein Kopiervorgang aus der Quellsammlung zur Ausgangssammlung.

Ungetesteter Code:

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