MongoDB theo mặc định trả về các trường theo thứ tự chèn của chúng.
ví dụ:
db.students.aggregate([ { "$project": { "midterm": 1,"final": 1 } } ])
sẽ trở lại
{ "_id" : 3, "final" : 78, "midterm" : 70 }
{ "_id" : 2, "midterm" : 60, "final" : 55 }
{ "_id" : 1, "midterm" : 70 }
như bạn có thể thấy bản ghi thứ hai, đó là các trường theo thứ tự mà chúng tôi đã chèn. Tuy nhiên, chúng tôi có thể chơi một mẹo để sắp xếp chúng theo thứ tự bạn muốn bằng cách đổi tên các trường.
ví dụ:
db.students.aggregate([ { "$project": { _midterm:"$midterm","_final": "$final"}}])
truy vấn trên sẽ trả về
{ "_id" : 3, "_midterm" : 70, "_final" : 78 }
{ "_id" : 2, "_midterm" : 60, "_final" : 55 }
{ "_id" : 1, "_midterm" : 70 }
ở đây giữa kỳ là đầu tiên và cuối cùng là thứ hai với một ngoại lệ. tên các trường có tiền tố là _
. nếu bạn muốn tên gốc, bạn có thể project
một lần nữa.
db.students.aggregate(
[
{ "$project": { _midterm:"$midterm","_final": "$final"}},
{ "$project": { midterm:"$_midterm","final": "$_final"}}
])
và nó sẽ trở lại
{ "_id" : 3, "midterm" : 70, "final" : 78 }
{ "_id" : 2, "midterm" : 60, "final" : 55 }
{ "_id" : 1, "midterm" : 70 }