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

Mongodb pilih semua bidang yang dikelompokkan berdasarkan satu bidang dan urutkan berdasarkan bidang lain

Apa yang Anda inginkan adalah sesuatu yang dapat dicapai dengan kerangka kerja agregasi. Bentuk dasar dari ( yang berguna bagi orang lain ) adalah:

db.collection.aggregate([

    // Group by the grouping key, but keep the valid values
    { "$group": {
        "_id": "$chainId",
        "docId": { "$first": "$_id" },
        "messageId": { "$first": "$messageId" },
        "createOn": { "$first": "$createdOn" }
    }},

    // Then sort
    { "$sort": { "createOn": -1 } }

])

Sehingga "grup" pada nilai yang berbeda dari "messageId" saat mengambil $first nilai batas untuk masing-masing bidang lainnya. Sebagai alternatif jika Anda ingin yang terbesar gunakan $last sebagai gantinya, tetapi untuk baris terkecil atau terbesar mungkin masuk akal untuk $sort pertama, jika tidak gunakan saja $min dan $max jika seluruh baris tidak penting.

Lihat MongoDB aggregate() dokumentasi untuk informasi lebih lanjut tentang penggunaan, serta driver JavaDocs dan dokumentasi konektor SpringData Mongo untuk lebih banyak penggunaan metode agregat dan kemungkinan pembantu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Audit Logging untuk MongoDB

  2. Mengapa set replika mongodb membutuhkan jumlah node voting yang ganjil?

  3. $nin dengan $expr

  4. Mongo $addToSet dengan beberapa nilai sintaks yang benar

  5. Dokumen hitungan Mongodb