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

Mongo намира дубликати за записи за две или повече полета

Можете лесно да идентифицирате дубликатите, като изпълните следната операция на конвейера за агрегиране:

db.collection.aggregate([
    { 
        "$group": { 
            "_id": { "foreing": "$foreing", "value": "$value" }, 
            "uniqueIds": { "$addToSet": "$_id" },
            "count": { "$sum": 1 } 
        }
    }, 
    { "$match": { "count": { "$gt": 1 } } }
])

$group Операторът в първата стъпка се използва за групиране на документите по foreign и value ключови стойности и след това създайте масив от _id стойности за всеки от групираните документи като uniqueIds поле с помощта на $addToSet оператор. Това ви дава масив от уникални стойности на изрази за всяка група. Вземете общия брой групирани документи, които да използвате в по-късните етапи на конвейера с $sum оператор.

Във втория етап на конвейера използвайте $match оператор за филтриране на всички документи с брой 1. Филтрираните документи представляват уникални индексни ключове.

Останалите документи ще бъдат тези в колекцията, които имат дублиращи се ключови стойности за двойка foreing &value .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Отдалечено свързване към MongoDB http интерфейс на EC2 сървър

  2. MongoDB Актуализация Deep Array

  3. Създаване на връзка с чужд ключ в Mongoose

  4. В mongoDb, как премахвате елемент от масива по неговия индекс?

  5. MongoDB GUI клиент (кросплатформен или Linux)