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

Как да намерите mongo документи със същото поле

Можете да намерите дубликати с помощта на Aggregation Framework и $group .

Примерна настройка на данни:

// Batch insert some test data
db.mycollection.insert([
    {a:1, b:2, c:3},
    {a:1, b:2, c:4},
    {a:0, b:2, c:3},
    {a:3, b:2, c:4}
])

Заявка за агрегиране:

db.mycollection.aggregate(
    { $group: { 
        // Group by fields to match on (a,b)
        _id: { a: "$a", b: "$b" },

        // Count number of matching docs for the group
        count: { $sum:  1 },

        // Save the _id for matching docs
        docs: { $push: "$_id" }
    }},

    // Limit results to duplicates (more than 1 match) 
    { $match: {
        count: { $gt : 1 }
    }}
)

Примерен резултат:

{
    "result" : [
        {
            "_id" : {
                "a" : 1,
                "b" : 2
            },
            "count" : 2,
            "docs" : [
                ObjectId("5162b2e7d650a687b2154232"),
                ObjectId("5162b2e7d650a687b2154233")
            ]
        }
    ],
    "ok" : 1
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB не използва моя индекс

  2. Как мога да сортирам резултатите от заявката на MongoDB по размер на вътрешния масив?

  3. Търсете в цялата колекция (mongodb) с помощта на nodejs

  4. Как да предотвратя появяването на поле _t при качване в MongoDB?

  5. Mongoexport към множество csv файлове