2016-09-12 3 views
1

У меня есть коллекция MongoDB под названием tag, которая содержит 3 объекта. Эти объекты содержат _id, main, name и т.д. поля, как следующее:Mongodb, засчитайте все объекты в поле, которое повторяется в коллекции

{ 
    "_id": "2ho8XgtfRvXpkg9g6", 
    "main": "category", 
    "name": ["elec", "toys", "flowers"] 
} 

Я хочу, чтобы сосчитать все элементы в массиве name (есть 3 здесь, 4 там, 5 в прошлом).

Как использовать следующий запрос для подсчета всех элементов во всем массиве name во всех трех коллекциях тегов?

Tags.find().count() 

ответ

0

Это объединение запросов даст вам общую сумму массива имя:

db.tag.aggregate([ 
    {"$unwind": "$name"}, 
    {"$group": {"_id": "$_id", "sum": { "$sum": 1}}}, 
    {"$group": {"_id": null, "total_sum": {"$sum": "$sum"}}} 

]) 
Смежные вопросы