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

MongoDB count команда

В MongoDB count командата aggregation отчита броя на документите в колекция или изглед.

Връща документ, който съдържа броя, както и състоянието на командата.

Пример

Да предположим, че имаме колекция, наречена 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 }

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

db.runCommand( { count: "pets" } )

Резултат:

{ "n" : 7, "ok" : 1 }

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

Пребройте резултата от заявка

Можете да преброите резултата от заявка, като използвате следния формуляр.

Пример:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" } 
} )

Резултат:

{ "n" : 4, "ok" : 1 }

В този пример можем да видим, че в колекцията има четири кучета.

Нека проверим броя на друга заявка. Този път ще разберем колко домашни любимци имат тегло, по-голямо от определено количество.

db.runCommand( { count:'pets',
    query: { weight: { $gt: 10 } }
} )

Резултат:

{ "n" : 3, "ok" : 1 }

Ограничете броя

Можете да използвате limit параметър, за да посочите максимален брой документи за броене.

Пример:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 3
} )

Резултат:

{ "n" : 3, "ok" : 1 }

Видяхме преди това, че всъщност има 4 кучета, но в този пример го ограничихме да брои максимум 3.

Ако лимитът е по-висок от действителния брой, резултатът няма да бъде повлиян от limit аргумент.

Пример:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 10
} )

Резултат:

{ "n" : 4, "ok" : 1 }

Пропускане на документи

Можете да използвате skip параметър за пропускане на определен брой документи преди броене.

Пример:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    skip: 2
} )

Резултат:

{ "n" : 2, "ok" : 1 }

Оттегляне

Имайте предвид, че документацията на MongoDB посочва следното:

Драйверите на MongoDB, съвместими с функциите 4.0, отменят съответния курсор и колекция count() API (които изпълняват count команда) в полза на нови API, които съответстват на countDocuments() и estimatedDocumentCount() . За конкретните имена на API за даден драйвер вижте документацията за API на драйвера.

Повече информация

count командата включва други полета, като hint , comment , readConcern и collation .

Вижте документацията на MongoDB за повече информация.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Създаване на BSON обект от JSON низ

  2. Струва ли си съкращаването на имената на свойства на MongoDB?

  3. Добавяне в Mongo DB с помощта на официален C# драйвер

  4. Драйверът на Mongodb C# връща само съвпадащи поддокументи в масива

  5. задайте полето като празно за обект mongo с помощта на mongoose