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

Bagaimana cara mengembalikan kemunculan pertama ID dengan Mongoose?

Kita dapat menggunakan kerangka kerja agregasi untuk melakukan ini. Pertama, kita perlu $sort oleh user dan "_id". Dari sana, kami kemudian $group oleh "pengguna" dan gunakan $last operator akumulator untuk mengembalikan dokumen terakhir untuk setiap pengguna. Perhatikan bahwa kita juga dapat menggunakan $first operator akumulator jika kita mengurutkan dokumen dalam urutan menurun, tetapi mengurutkan dalam urutan menaik dan menggunakan $last memperjelas niat kita.

db.collection.aggregate([
    { "$sort": { "user": 1, "_id": -1 } }, 
    { "$group": { 
        "_id": "$user", 
        "user": { "$last": "$$ROOT" } 
    }} 
])

yang menghasilkan:

{
    "_id" : "fje93jrg4",
    "user" : {
        "_id" : 2,
        "user" : "fje93jrg4",
        "event" : null,
        "group" : null,
        "name" : "Bob",
        "text" : "Testing"
    }
}
{
    "_id" : "94fg844f",
    "user" : {
        "_id" : 1,
        "user" : "94fg844f",
        "event" : null,
        "group" : null,
        "name" : "Jake",
        "text" : "Hello world"
    }
}
{
    "_id" : null,
    "user" : {
        "_id" : 4,
        "user" : null,
        "event" : "d0j3n9fn3",
        "group" : null,
        "name" : "My Event",
        "text" : "Testing 2"
    }
}

Kami mungkin ingin menambahkan $project ke saluran kami tetapi hal itu akan menyebabkan penurunan kinerja. Namun ini akan mengurangi jumlah data yang dikirim melalui kabel dan waktu serta memori yang digunakan untuk memecahkan kode dokumen di sisi klien jika tidak perlu semua pasangan kunci/nilai dalam dokumen dikembalikan.

$project tampilan panggung seperti ini:

{ "$project": {
    "_id": "$user._id",
    "user": "$user.user",
    "event": "$user.event",
    "group": "$user.group",
    "name": "$user.name",
    "text": "$user.text"
}}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bisakah saya menghapus Indeks MongoDB default?

  2. Apakah menjalankan mongoskin hanya dengan mongodb versi 1.4 dan yang lebih lama?

  3. Tidak dapat menghapus dari kumpulan mongodb angular MEAN stack

  4. luwak menemukan dokumen dengan properti referensi

  5. kembalikan hanya satu properti _id