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 }
2番目のレコードを見るとわかるように、フィールドは挿入した順になっています。ただし、フィールドの名前を変更することで、必要な順序でフィールドを取得するためのトリックを実行できます。
例:
db.students.aggregate([ { "$project": { _midterm:"$midterm","_final": "$final"}}])
上記のクエリは
を返します{ "_id" : 3, "_midterm" : 70, "_final" : 78 }
{ "_id" : 2, "_midterm" : 60, "_final" : 55 }
{ "_id" : 1, "_midterm" : 70 }
ここでは、1つの例外を除いて、中間が最初で、最終が2番目です。フィールド名の前には_
が付いています 。元の名前が必要な場合は、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 }