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

Bagaimana saya bisa memeriksa dokumen duplikat di Mongoose?

Jika Anda ingin mendapatkan daftar yang identik (kecuali untuk _id lapangan, tentu saja) dokumen dalam koleksi Anda, berikut adalah cara melakukannya:

collection.aggregate({
    $project: {
        "_id": 1, // keep the _id field where it is anyway
        "doc": "$$ROOT" // store the entire document in the "doc" field
    }
}, {
    $project: {
        "doc._id": 0 // remove the _id from the stored document because we do not want to compare it
    }
}, {
    $group: {
        "_id": "$doc", // group by the entire document's contents as in "compare the whole document"
        "ids": { $push: "$_id" }, // create an array of all IDs that form this group
        "count": { $sum: 1 } // count the number of documents in this group
    }
}, {
    $match: {
        "count": { $gt: 1 } // only show what's duplicated
    }
})

Seperti biasa dengan kerangka kerja agregasi, Anda dapat mencoba memahami apa yang sebenarnya terjadi di setiap langkah dengan mengomentari semua langkah, lalu mengaktifkan semuanya lagi tahap demi tahap.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Daftar indeks di MongoDB?

  2. Menentukan nama koleksi dengan MongoEngine

  3. Express.js dan durasi sesi connect-mongo

  4. MongoDB:rentang kueri pada waktu penyisipan dengan _id dan ObjectID

  5. Bagaimana cara mengonversi kueri agregasi MongoDB ke Laravel MongoDB oleh jenssegers