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

Премахване на дублирани документи въз основа на поле

Това е нещо, което всъщност можем да направим с помощта на рамката за агрегиране и без обработка от страна на клиента.

MongoDB 3.4

db.collection.aggregate(
    [ 
        { "$sort": { "_id": 1 } }, 
        { "$group": { 
            "_id": "$asin", 
            "doc": { "$first": "$$ROOT" } 
        }}, 
        { "$replaceRoot": { "newRoot": "$doc" } },
        { "$out": "collection" }
    ]

)

MongoDB версия <=3.2:

db.collection.aggregate(
    [ 
        { "$sort": { "_id": 1 } }, 
        { "$group": { 
            "_id": "$asin", 
            "doc": { "$first": "$$ROOT" } 
        }}, 
        { "$project": { 
            "asin": "$doc.asin", 
            "url": "$doc.url", 
            "image": "$doc.image", 
            "salesRank": "$doc.salesRank", 
            "title": "$doc.salesRank", 
            "brand": "$doc.brand", 
            "favourite": "$doc.favourite", 
            "createdAt": "$doc.createdAt", 
            "updatedAt": "$doc.updatedAt" 
        }},
        { "$out": "collection" }
    ]
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Обектите не са валидни като дъщерни данни на React от MongoDB

  2. Как да кодирам MongoDB foreach Query в PHP

  3. MongoDB $или заявка

  4. Django + Pymongo създава връзка за потвърждение на акаунт

  5. MongoDB - отворена и затворена връзка - съвет за добра практика