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

Znajdź zduplikowane adresy URL w mongodb

Zakładając kolekcję dokumentów z name (używając name zamiast url ) pole zawierające zduplikowane wartości. Mam dwie agregacje, które zwracają pewne dane wyjściowe, które można wykorzystać do dalszego przetwarzania. Mam nadzieję, że okaże się to przydatne.

{ _id: 1, name: "jack" },
{ _id: 2, name: "john" },
{ _id: 3, name: "jim" },
{ _id: 4, name: "john" }
{ _id: 5, name: "john" }, 
{ _id: 6, name: "jim" }

Zwróć uwagę, że „john” ma 3 wystąpienia, a „jim” ma 2.

(1) Ta agregacja zwraca nazwy, które mają duplikaty (więcej niż jedno wystąpienie):

db.collection.aggregate( [
  { 
      $group: { 
          _id: "$name", 
          count: { $sum: 1 }
      } 
  },
  { 
      $group: { 
          _id: "duplicate_names", 
          names: { $push: { $cond: [ { $gt: [ "$count", 1 ] }, "$_id", "$DUMMY" ] } }
      }
  }
] )

Wynik:

{ "_id" : "duplicate_names", "names" : [ "john", "jim" ] }


(2) Poniższa agregacja po prostu zwraca _id wartości pól dla zduplikowanych dokumentów. Na przykład imię „jim” ma _id wartości 3 i 6 . Dane wyjściowe zawierają tylko identyfikatory dla zduplikowanych dokumentów, tj. 6 .

db.colection.aggregate( [
  { 
      $group: { 
          _id: "$name", 
          count: { $sum: 1 }, 
          ids: { $push: "$_id" } 
      } 
  },
  { 
      $group: { 
          _id: "duplicate_ids",  
          ids: { $push: { $slice: [ "$ids", 1, 9999 ] } } 
      } 
  },
  { 
      $project: { 
          ids: { 
              $reduce: {
                  input: "$ids", 
                  initialValue: [ ],
                  in: { $concatArrays: [ "$$this", "$$value" ] }
              }
          }
      } 
  }
] )

Wynik:

{ "_id" : duplicate_ids", "ids" : [ 6, 4, 5 ] }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zabezpieczyć pole hasła w Mongoose/MongoDB, aby nie zwracało się w zapytaniu, gdy wypełniam kolekcje?

  2. Draft.js — nie można pobrać danych z bazy danych. Błąd cross-origin

  3. MongoDB findOneAndUpdate()

  4. MongoDB jako usługa systemu Windows i konfiguracja zestawu repliki

  5. MongoDB - kopiuj kolekcję w Javie bez zapętlania wszystkich elementów