sql >> Databáze >  >> NoSQL >> MongoDB

Je možné získat pole v pořadí projekce v Agregation Frameworks mongo

MongoDB standardně vrací pole v pořadí jejich vložení.

např.

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

vrátí

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

jak můžete vidět druhý záznam, jeho pole jsou v pořadí, v jakém jsme vložili. Můžeme si však zahrát trik, abychom je dostali do požadovaného pořadí přejmenováním polí.

např.

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

výše uvedený dotaz se vrátí

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

zde je průběžný semestr první a závěrečný druhý až na jednu výjimku. názvy polí mají předponu _ . pokud chcete originální názvy, můžete project znovu.

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

a vrátí se

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


  1. počkejte, až všechny sliby skončí v nodejs s bluebird

  2. Přístup k databázi produkce Meteor

  3. Jak nakonfigurovat klienta Node Redis, aby okamžitě vyvolal chyby, když se připojení nezdaří? [ČTĚTE PODROBNOSTI]

  4. Typované transakce Redis