Vous pouvez utiliser un MapReduce travail pour ça.
MapReduce vous permet de spécifier une collection externe dans laquelle stocker les résultats.
Lorsque vous avez une fonction map qui émet chaque document avec son propre _id comme clé et une fonction reduce qui renvoie la première entrée (et dans ce cas uniquement parce que les _id sont uniques) du tableau de valeurs, MapReduce est essentiellement une opération de copie à partir du de la collection source à la collection sortante.
Code non testé :
db.runCommand(
{
mapReduce: "mongo_collection",
map: function(document) {
emit(document._id, document);
},
reduce: function(key, values) {
return values[0];
},
out: {
merge:"mongo_his_collection"
}
}
)