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

Mongo znajduje duplikaty wpisów dla dwóch lub więcej pól

Możesz łatwo zidentyfikować duplikaty, uruchamiając następującą operację potoku agregacji:

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

$group operator w pierwszym kroku służy do grupowania dokumentów według foreign i value wartości klucza, a następnie utwórz tablicę _id wartości dla każdego z grupowanych dokumentów jako uniqueIds pole za pomocą $addToSet operator. Daje to tablicę unikalnych wartości wyrażeń dla każdej grupy. Uzyskaj całkowitą liczbę zgrupowanych dokumentów do użycia w późniejszych etapach potoku za pomocą $sum operatora.

W drugim etapie potoku użyj $match operator, aby odfiltrować wszystkie dokumenty z liczbą 1. Odfiltrowane dokumenty reprezentują unikalne klucze indeksu.

Pozostałe dokumenty będą tymi w kolekcji, które mają zduplikowane wartości klucza dla pary foreing &value .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Pobierasz tylko dokumenty utworzone w ciągu ostatnich 24 godzin?

  2. MongoDB $pullAll

  3. Najnowocześniejsze zarządzanie bazami danych:ClusterControl — przewodnik

  4. łączenie się z lokalnym mongodb z kontenera docker

  5. Najlepsze oprogramowanie pośredniczące do przechowywania sesji dla Express + MongoDB