2014-12-31 4 views
0

Имеются данные для сбора данных.Как использовать агрегирование на mongoDB

{"_id" : 1 
,"subject" : "post1" 
,"usersLiking": [ 
    {"user_id" : "user_id_01", "username" : "user01"} 
    {"user_id" : "user_id_02", "username" : "user02"} 
] 
,"usersDisliking": [ 
    {"user_id" : "user_id_03", "username" : "user03"} 
    {"user_id" : "user_id_04", "username" : "user04"} 
    {"user_id" : "user_id_05", "username" : "user05"} 
] 
} 
,{"_id" : 2 
,"subject" : "post2" 
,"usersLiking": [ 
    {"user_id" : "user_id_01", "username" : "user01"} 
] 
,"usersDisliking": [ 
    {"user_id" : "user_id_03", "username" : "user03"} 
    {"user_id" : "user_id_04", "username" : "user04"} 
] 
} 

Надеюсь, что выход ниже.

{"_id" : 1, "usersLikingCount" : 2, "usersDislikingCount" : 3} 
{"_id" : 2, "usersLikingCount" : 1, "usersDislikingCount" : 2} 

Это настолько сложно для меня. Я хочу получить счет нескольких встроенных документов. Что делает запрос? Спасибо.

ответ

0

Попробуйте

db.collectionName.aggregate({"$project":{"usersLikingCount":{"$size":"$usersLiking"},"usersDislikingCount":{"$size":"$usersDisliking"}}})

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