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

Sắp xếp kết quả truy vấn theo thứ tự các mục trong mảng điều kiện được cung cấp trong Mongoose

Xem xét dữ liệu sau:

db.col.save({ a: "111"})
db.col.save({ a: "112"})
db.col.save({ a: "113"})
db.col.save({ a: "114"})

bạn có thể sử dụng $ match của Aggregation Framework để lọc ra tất cả các mục không có trong mảng được chỉ định và $ addFields với $ indexOfArray để lấy index tài sản. Sau đó, bạn có thể $ sort theo thuộc tính đó và sử dụng $ project để xóa trường tạm thời. Hãy thử:

db.col.aggregate([
    {
        $match: { a: { $in: ["112", "111", "113"] } }
    },
    {
        $addFields: {
            index: { $indexOfArray: [ ["112", "111", "113"], "$a" ] }
        }
    },
    {
        $sort: { index: 1 }
    },
    {
        $project: { index: 0, _id: 0 }
    }
])

Kết quả đầu ra:

{ "a" : "112" }
{ "a" : "111" }
{ "a" : "113" }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Cập nhật tài liệu bằng cách sử dụng dữ liệu từ cùng một tài liệu

  2. Tại sao tôi nhận được đối số không được công nhận cho đến dateFromString:'format' mặc dù có phiên bản db> 3.6 hỗ trợ tổng hợp

  3. Quy trình tổng hợp Mongodb cách hạn chế đẩy nhóm

  4. Chuyển đổi .NET Guid sang MongoDB ObjectID

  5. MongoDB nguyên tử findOrCreate:findOne, chèn nếu không tồn tại, nhưng không cập nhật