Есть несколько различных способов сделать это, подход грубой силы должен был бы сделать запрос для каждого отдельного значения, о котором вы знаете, и просто вызвать .count()
следующим образом:
db.collection.find({field : '/content/public'}).count()
db.collection.find({field : '/content/private'}).count()
etc.
Но это означает, что вам нужно перебирать список известных полей и выполнять несколько разных запросов. Тем не менее, это может быть хорошо для выборочной проверки.
Более общим вариантом является структура агрегации. Примерно так будет работать, где поле, как указано выше, является тем, для которого вы заинтересованы в подсчете значений:
db.collection.aggregate( { $group : { _id : "$field", count : { $sum : 1 } } })
Вот общий пример с составленными данными. Сначала сами данные:
> db.foo.find()
{ "_id" : ObjectId("547ccf922bd17c324ae52b6e"), "countField" : "/content/public" }
{ "_id" : ObjectId("547ccf932bd17c324ae52b6f"), "countField" : "/content/public" }
{ "_id" : ObjectId("547ccf942bd17c324ae52b70"), "countField" : "/content/public" }
{ "_id" : ObjectId("547ccf942bd17c324ae52b71"), "countField" : "/content/public" }
{ "_id" : ObjectId("547ccf952bd17c324ae52b72"), "countField" : "/content/public" }
{ "_id" : ObjectId("547ccf962bd17c324ae52b73"), "countField" : "/content/public" }
{ "_id" : ObjectId("547ccf9b2bd17c324ae52b74"), "countField" : "/content/private" }
{ "_id" : ObjectId("547ccf9d2bd17c324ae52b75"), "countField" : "/content/private" }
{ "_id" : ObjectId("547ccfa42bd17c324ae52b76"), "countField" : "randomvalue" }
{ "_id" : ObjectId("547ccfa52bd17c324ae52b77"), "countField" : "randomvalue" }
{ "_id" : ObjectId("547ccfa62bd17c324ae52b78"), "countField" : "randomvalue" }
{ "_id" : ObjectId("547ccfa72bd17c324ae52b79"), "countField" : "randomvalue" }
{ "_id" : ObjectId("547ccfa72bd17c324ae52b7a"), "countField" : "randomvalue" }
{ "_id" : ObjectId("547ccfa82bd17c324ae52b7b"), "countField" : "randomvalue" }
{ "_id" : ObjectId("547ccfb52bd17c324ae52b7c"), "countField" : "/much/wow" }
Теперь образец агрегации:
> db.foo.aggregate({ $group : { _id : "$countField", count : { $sum : 1 } } })
{ "_id" : "/much/wow", "count" : 1 }
{ "_id" : "randomvalue", "count" : 6 }
{ "_id" : "/content/private", "count" : 2 }
{ "_id" : "/content/public", "count" : 6 }