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

Sắp xếp theo độ dài mảng

Sử dụng khung tổng hợp với sự trợ giúp từ $size toán tử từ MongoDB 2.6 trở lên:

db.collection.aggregate([
    // Project with an array length
    { "$project": {
        "title": 1,
        "author": 1,
        "votes": 1,
        "length": { "$size": "$votes" }
    }},

    // Sort on the "length"
    { "$sort": { "length": -1 } },

    // Project if you really want
    { "$project": {
        "title": 1,
        "author": 1,
        "votes": 1,
    }}
])

Đủ đơn giản.

Nếu bạn không có sẵn phiên bản 2.6, bạn vẫn có thể thực hiện việc này với một số công việc khác:

db.collection.aggregate([
    // unwind the array
    { "$unwind": "$votes" },

    // Group back
    { "$group": {
        "_id": "$id",
        "title": { "$first": "$title" },
        "author": { "$first": "$author" },
        "votes": { "$push": "$votes" },
        "length": { "$sum": 1 }
    }},

    // Sort again
    { "$sort": { "length": -1 } },

    // Project if you want to
    { "$project": {
        "title": 1,
        "author": 1,
        "votes": 1,
    }}
])

Đó là khá nhiều.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bộ lọc Linq đến MongoDB

  2. Mongoose update Nhiều giá trị khác nhau theo id duy nhất như email không có vòng lặp

  3. MongoDB $ addFields và $ in tổng hợp

  4. Làm thế nào để điều này được chọn trong MongoDB

  5. Lỗi MongoDB:mongodb-10gen E:Sub-process / usr / bin / dpkg trả về mã lỗi (1)