MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Có thể lấy các trường theo thứ tự chiếu trong mongo Aggregation Frameworks không

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 }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Trình điều khiển Promise và nodejs MongoDB

  2. MongoDB $ isoDayOfWeek

  3. Mongodb - bao gồm hoặc loại trừ các phần tử nhất định với trình điều khiển c #

  4. (node:3341) Deprecation Cảnh báo:Mongoose:mpromise

  5. MongoDB:Làm thế nào để tìm hiểu xem một trường mảng có chứa một phần tử không?