MongoDB renvoie par défaut les champs dans l'ordre de leur insertion.
ex.
db.students.aggregate([ { "$project": { "midterm": 1,"final": 1 } } ])
reviendra
{ "_id" : 3, "final" : 78, "midterm" : 70 }
{ "_id" : 2, "midterm" : 60, "final" : 55 }
{ "_id" : 1, "midterm" : 70 }
comme vous pouvez le voir deuxième enregistrement, ses champs sont dans l'ordre dans lequel nous avons inséré. Cependant, nous pouvons jouer un tour pour les obtenir dans l'ordre que vous voulez en renommant les champs.
ex.
db.students.aggregate([ { "$project": { _midterm:"$midterm","_final": "$final"}}])
la requête ci-dessus renverra
{ "_id" : 3, "_midterm" : 70, "_final" : 78 }
{ "_id" : 2, "_midterm" : 60, "_final" : 55 }
{ "_id" : 1, "_midterm" : 70 }
ici, la mi-session est la première et la finale est la deuxième à une exception près. les noms des champs sont préfixés par _
. si vous voulez des noms originaux, vous pouvez project
à nouveau.
db.students.aggregate(
[
{ "$project": { _midterm:"$midterm","_final": "$final"}},
{ "$project": { midterm:"$_midterm","final": "$_final"}}
])
et il reviendra
{ "_id" : 3, "midterm" : 70, "final" : 78 }
{ "_id" : 2, "midterm" : 60, "final" : 55 }
{ "_id" : 1, "midterm" : 70 }