sql >> Databasteknik >  >> NoSQL >> MongoDB

Är det möjligt att få fälten i projektionsordning i Aggregation Frameworks mongo

MongoDB returnerar som standard fält i den ordning de infogas.

t.ex.

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

kommer tillbaka

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

som du kan se andra posten, är dess fält i den ordning som vi infogade. Vi kan dock spela ett knep för att få dem i ordning du vill ha genom att byta namn på fält.

t.ex.

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

ovanstående fråga kommer tillbaka

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

här är midterm första och final tvåa med ett undantag. fältnamn har prefixet _ . om du vill ha originalnamn kan du project igen.

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

och det kommer tillbaka

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


  1. Anslut till AWS ElastiCache med In-Transit Encryption

  2. Kan redis-nyckelutrymmesaviseringar skjutas till redis-strömmen istället för pub-/underkanal

  3. Vilka parametrar skickas till Mongoose callbacks

  4. Skärning mellan två eller flera sorterade uppsättningar