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

Bagaimana cara menanyakan hanya dokumen dengan stempel waktu terbaru dari grup?

Anda mencampur beberapa metode di sini ketika Anda dapat melakukan semuanya dalam pipa agregasi. Jika tidak, ini hanya masalah mengatur langkah Anda dengan benar:

db.collection.aggregate([
    {$sort: { createdOn: -1 }},
    {$group: { _id: "$itemId", 
        createdOn: {$first: "$createdOn"},
        field1: {$first: "$field1" },
        field2: {$first: "$field2" }
    }},
    {$match: { field1: "foo" }}
])

Jadi urutkan dulu untuk dokumen terbaru. Grup di itemId ( pesanan akan dipertahankan untuk $first ), lalu filter dengan $match jika Anda harus. Tapi dokumen Anda yang dikelompokkan akan menjadi yang terbaru.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. pembaruan mongo db mengubah urutan bidang objek

  2. Agregasi Mongo dan MongoError:pengecualian:BufBuilder berusaha untuk tumbuh() hingga 134217728 byte, melewati batas 64MB

  3. MongoDB - Proyeksikan hanya elemen yang cocok dalam array

  4. Bagaimana Anda memodelkan hubungan pertemanan di MongoDB?

  5. Hitungan MongoDB () salah mengembalikan 0 jika kueri diberikan