MongoDB por defecto devuelve los campos en el orden de su inserción.
por ejemplo
db.students.aggregate([ { "$project": { "midterm": 1,"final": 1 } } ])
regresará
{ "_id" : 3, "final" : 78, "midterm" : 70 }
{ "_id" : 2, "midterm" : 60, "final" : 55 }
{ "_id" : 1, "midterm" : 70 }
como puede ver el segundo registro, sus campos están en el orden en que los insertamos. Sin embargo, podemos jugar un truco para ponerlos en el orden que desee cambiando el nombre de los campos.
por ejemplo
db.students.aggregate([ { "$project": { _midterm:"$midterm","_final": "$final"}}])
la consulta anterior devolverá
{ "_id" : 3, "_midterm" : 70, "_final" : 78 }
{ "_id" : 2, "_midterm" : 60, "_final" : 55 }
{ "_id" : 1, "_midterm" : 70 }
aquí el examen parcial es el primero y el final es el segundo con una excepción. los nombres de los campos tienen el prefijo _
. si quieres nombres originales, puedes project
de nuevo.
db.students.aggregate(
[
{ "$project": { _midterm:"$midterm","_final": "$final"}},
{ "$project": { midterm:"$_midterm","final": "$_final"}}
])
y volverá
{ "_id" : 3, "midterm" : 70, "final" : 78 }
{ "_id" : 2, "midterm" : 60, "final" : 55 }
{ "_id" : 1, "midterm" : 70 }