sql >> Database teknologi >  >> NoSQL >> MongoDB

Er det muligt at få felterne i projektionsrækkefølgen i Aggregation Frameworks mongo

MongoDB returnerer som standard felter i rækkefølge efter deres indsættelse.

f.eks.

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

vender tilbage

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

som du kan se anden post, er dets felter i den rækkefølge, som vi indsatte. Vi kan dog spille et trick for at få dem i den ønskede rækkefølge ved at omdøbe felter.

f.eks.

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

ovenstående forespørgsel vil returnere

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

her er midtvejs første og finale er anden med én undtagelse. feltnavne er præfikset med _ . hvis du vil have originale navne, kan du project igen.

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

og den vender tilbage

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


  1. Er der en måde at flushall på en klynge, så alle nøgler fra master og slaver slettes fra db

  2. MongoDB kan ikke starte serveren:Standardlagermotoren 'wiredTiger' er ikke tilgængelig med denne build af mongod

  3. Hvordan kontrollerer man, om et arrayfelt er en del af et andet array i MongoDB?

  4. MongoDB $in Query Operator