sql >> Databáze >  >> NoSQL >> MongoDB

Jak mohu zkontrolovat duplicitní dokumenty v Mongoose?

Pokud chcete získat seznam identických (kromě _id pole, samozřejmě) dokumenty ve vaší sbírce, můžete to udělat takto:

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

Jako vždy u agregačního rámce se můžete pokusit porozumět tomu, co se přesně děje v každém kroku, a to tak, že všechny kroky okomentujete a poté vše znovu aktivujete krok za krokem.




  1. Automaticky odstranit odkazující objekty při smazání v MongoDB

  2. OpenSSL nebylo nalezeno na MacOS Sierra

  3. Jak kódovat pomocí Spring data MongoDB pro db.test.update({name:'abc'}, {$pull:{'child':{'age':10}}})

  4. Chyba při upgradu Mongodb z 3.2 na 3.6