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

3 sposoby na zwracanie odrębnych wartości w MongoDB

Wartości odrębne to wartości z usuniętymi nadmiarowymi duplikatami. Innymi słowy, wartości odrębne są wartościami unikalnymi.

W MongoDB istnieje kilka sposobów na zwrócenie różnych wartości w zapytaniu. W tym artykule przedstawiono 3 sposoby zwracania różnych wartości w powłoce mongo.

Przykładowe dane

W przykładach na tej stronie użyto następującej kolekcji o nazwie pets :

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

distinct() Metoda

W MongoDB db.collection.distinct() Metoda znajduje różne wartości dla określonego pola w pojedynczej kolekcji lub widoku i zwraca wyniki w postaci tablicy.

Przykład:

db.pets.distinct( "type" )

Wynik:

[ "Bat", "Cat", "Dog" ]

Te trzy wartości to odrębne wartości dla type w powyższych dokumentach.

pets część po prostu nazywa kolekcję, z której mają zostać zwrócone odrębne wartości.

db.collection.distinct() method jest metodą opakowującą powłoki dla distinct polecenie (poniżej).

distinct Polecenie

W MongoDB distinct Polecenie agregacji znajduje różne wartości dla określonego pola w jednej kolekcji.

Zwraca dokument zawierający tablicę różnych wartości, a także osadzony dokument ze statystykami zapytań i planem zapytań.

db.runCommand ( { distinct: "pets", key: "type" } )

Wynik:

{ "values" : [ "Bat", "Cat", "Dog" ], "ok" : 1 }

Widzimy, że zwracane są te same odrębne wartości, ale tym razem znajdują się one w dokumencie, który zawiera również inne informacje.

$group Operator agregacji

W zależności od potrzeb możesz również skorzystać z grupy $group operator agregacji do zwracania odrębnych wartości.

Przykład:

db.pets.aggregate( [ { $group : { _id : "$type" } } ] )

Wynik:

{ "_id" : "Cat" }
{ "_id" : "Bat" }
{ "_id" : "Dog" }

W takim przypadku odrębne wartości są zwracane w osobnych dokumentach.

Takie podejście może być przydatne, jeśli spodziewasz się dużych wyników. Jeśli Twoje wyniki są większe niż maksymalny rozmiar BSON (16 megabajtów w momencie pisania), może być konieczne zastosowanie tego podejścia.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor.js wdrożyć na example.com lub www.example.com?

  2. Wstaw element do zagnieżdżonych tablic w MongoDB

  3. Elasticsearch vs. MongoDB do aplikacji filtrującej

  4. Jak używać guid w zapytaniu powłoki mongodb?

  5. Sterownik Node.js mongodb asynchroniczny/await zapytania