Vous pouvez utiliser l'aggregation
en particulier le $project
opérateur pour cela. Le $out
permet d'écrire le résultat dans une autre collection.
db.collection.aggregate([
{ "$project": {
"_id": "$_id",
"name": "$item.name",
"price": "$item.price",
"quantity": "$item.quantity",
"date": "$item.date"}
},
{ "$out": "collection"}
])
Vos documents ressemblent maintenant à ceci :
{
"_id" : 1,
"name" : "abc",
"price" : 10,
"quantity" : 2,
"date" : ISODate("2014-03-01T08:00:00Z")
}
Vous pouvez également écraser la collection préexistante en donnant à la nouvelle collection de résultats le même nom mais ceci.