MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Възможно ли е да се получат полетата в реда на проекция в Aggregation Frameworks mongo

MongoDB по подразбиране връща полета по реда на тяхното вмъкване.

напр.

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

ще върне

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

както можете да видите втория запис, полетата му са в реда, в който сме вмъкнали. Въпреки това можем да изиграем номер, за да ги приведем в желания от вас ред, като преименуваме полета.

напр.

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

горната заявка ще върне

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

тук междинният е първи, а финалът е втори с едно изключение. имената на полетата са с префикс _ . ако искате оригинални имена, можете да project отново.

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

и ще се върне

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Заявка за получаване на данни за последните X минути с Mongodb

  2. MongoDB - Разлика между индекс на текстово поле и текстов индекс?

  3. Как да форматирате данни в модел преди да ги запишете в Mongoose (ExpressJS)

  4. Елемент на масива за актуализиране на Mongo (.NET драйвер 2.0)

  5. ScaleGrid обявява MongoDB хостинг услуги в Канада