MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как мога да проверя за дублиращи се документи в Mongoose?

Ако искате да получите списък с идентични (с изключение на _id поле, очевидно) документи във вашата колекция, ето как можете да направите това:

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

Както винаги с рамката за агрегиране, можете да опитате да разберете какво точно се случва във всяка стъпка, като коментирате всички стъпки и след това активирате всичко отново етап по етап.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb не може да стартира поради разрешения на WiredTiger.turtle

  2. Кой е най-добрият начин за съхраняване на дати в MongoDB?

  3. стратегия за индекс на mongodb за заявка за диапазон с различни полета

  4. Разменете стойностите в масив MongoDB

  5. Nodejs / Express - Стартирането на моето приложение:express.createServer() е отхвърлено