sql >> Database >  >> NoSQL >> MongoDB

Betere manier om MongoDB-verzameling naar een andere verzameling te verplaatsen

Je zou een MapReduce kunnen gebruiken werk hiervoor.

Met MapReduce kunt u een uit-verzameling specificeren om de resultaten in op te slaan.

Wanneer u een kaartfunctie hebt die elk document met zijn eigen _id als sleutel uitzendt en een reduce-functie die de eerste (en in dit geval alleen omdat _id's uniek zijn) invoer van de waardenarray retourneert, is de MapReduce in wezen een kopieerbewerking van de source-collectie naar de out-collectie.

Niet-geteste 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"
             }
           }
         )


  1. Entity Framework en MongoDb

  2. Redis start niet als Windows-service op Windows7

  3. MongoDB en sluit zich aan

  4. Mongo-aggregatieraamwerk:wat is het slotniveau van de $out-operatie in de laatste fase?