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

3 начина за връщане на различни стойности в MongoDB

Различни стойности са тези стойности с премахнати излишни дубликати. С други думи, отделните стойности са уникални стойности.

В MongoDB има няколко начина, по които можем да върнем различни стойности в заявка. Тази статия представя 3 начина за връщане на различни стойности в mongo shell.

Примерни данни

Примерите на тази страница използват следната колекция, наречена 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() Метод

В MongoDB, db.collection.distinct() методът намира отделните стойности за определено поле в една колекция или изглед и връща резултатите в масив.

Пример:

db.pets.distinct( "type" )

Резултат:

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

Тези три стойности са отделните стойности за type поле в горните документи.

pets част просто наименува колекцията, за която да върне отделните стойности.

db.collection.distinct() method е метод за обвивка на обвивката за distinct команда (по-долу).

distinct Команда

В MongoDB, distinct командата aggregation намира отделните стойности за определено поле в една колекция.

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

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

Резултат:

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

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

$group Оператор за агрегиране

В зависимост от вашите нужди, можете да използвате и $group оператор за агрегиране за връщане на различни стойности.

Пример:

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

Резултат:

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

В този случай отделните стойности се връщат в отделни документи.

Този подход може да бъде полезен, ако очаквате резултатите ви да са големи. Ако вашите резултати са по-големи от максималния размер на BSON (16 мегабайта към момента на писане), може да се наложи да използвате този подход.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Добавяне в Mongo DB с помощта на официален C# драйвер

  2. Spring Boot и как да конфигурирам подробности за връзката с MongoDB?

  3. Метеор има ли отделна заявка за колекции?

  4. Използване на UUID вместо ObjectID в MongoDB

  5. Автоматично увеличаване на последователността в mongodb с помощта на java