MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Urutkan berdasarkan panjang array

Gunakan kerangka kerja agregasi dengan bantuan dari $size operator dari MongoDB 2.6 ke atas:

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,
    }}
])

Cukup sederhana.

Jika Anda tidak memiliki versi 2.6 yang tersedia, Anda masih dapat melakukannya dengan sedikit lebih banyak pekerjaan:

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,
    }}
])

Kurang lebih seperti itu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kesalahan Validasi Mongodb

  2. buka tutup koleksi MongoDB yang ditutup

  3. pushOrModify seperti operator untuk subdocument mongo

  4. Izin minimum untuk menggunakan mongodump (untuk membuang db tertentu)

  5. Emoji tidak disimpan dengan benar di mongodb