MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ist es möglich, die Felder in der Reihenfolge der Projektion in Aggregation Frameworks Mongo zu erhalten

MongoDB gibt standardmäßig Felder in der Reihenfolge ihrer Einfügung zurück.

zB

db.students.aggregate([  { "$project": {  "midterm": 1,"final": 1   } } ])

gibt

zurück
{ "_id" : 3, "final" : 78, "midterm" : 70 }
{ "_id" : 2, "midterm" : 60, "final" : 55 }
{ "_id" : 1, "midterm" : 70 }

Wie Sie im zweiten Datensatz sehen können, sind die Felder in der Reihenfolge, in der wir sie eingefügt haben. Wir können jedoch einen Trick spielen, um sie in die gewünschte Reihenfolge zu bringen, indem wir die Felder umbenennen.

zB

db.students.aggregate([  { "$project": {  _midterm:"$midterm","_final": "$final"}}])

obige Abfrage wird zurückgegeben

{ "_id" : 3, "_midterm" : 70, "_final" : 78 }
{ "_id" : 2, "_midterm" : 60, "_final" : 55 }
{ "_id" : 1, "_midterm" : 70 }

hier steht Midterm an erster Stelle und Final an zweiter Stelle mit einer Ausnahme. Feldnamen wird das Präfix _ vorangestellt . wenn Sie Originalnamen wollen, können Sie project nochmal.

db.students.aggregate(
[
{ "$project": {  _midterm:"$midterm","_final": "$final"}},
{ "$project": {  midterm:"$_midterm","final": "$_final"}}
])

und es wird zurückkehren

{ "_id" : 3, "midterm" : 70, "final" : 78 }
{ "_id" : 2, "midterm" : 60, "final" : 55 }
{ "_id" : 1, "midterm" : 70 }