MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak mogę sprawdzić duplikaty dokumentów w Mongoose?

Jeśli chcesz uzyskać listę identycznych (z wyjątkiem _id pola, oczywiście) dokumenty w Twojej kolekcji, oto jak możesz to zrobić:

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

Jak zawsze w ramach agregacji, możesz spróbować zrozumieć, co dokładnie dzieje się na każdym kroku, komentując wszystkie kroki, a następnie ponownie aktywując wszystko krok po kroku.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Znajdź i modyfikuj za pomocą MongoDB C#

  2. Nodejs Mongoose - jak uniknąć piekła zwrotnego?

  3. Pętla zwrotna — GET model przy użyciu niestandardowego identyfikatora ciągu z MongoDB

  4. Map-redukcja wydajności w MongoDb 2.2, 2.4 i 2.6

  5. Wewnętrzny błąd serwera podczas migracji Parse do Heroku/AWS