sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kan jag kontrollera om det finns dubbletter av dokument i Mongoose?

Om du vill få en lista med identiska (förutom _id fält, uppenbarligen) dokument i din samling, så här kan du göra det:

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

Som alltid med aggregeringsramverket kan du försöka förstå exakt vad som händer i varje steg genom att kommentera alla steg och sedan aktivera allt igen steg för steg.




  1. Hur push-notiser med angular.js?

  2. DeprecationWarning:Lyssna på händelser i Db-klassen har fasats ut och kommer att tas bort i nästa större version

  3. Så här gör du:Använd HBase Thrift Interface, del 1

  4. Redis skanna hoppar över nycklar