У меня есть коллекция с именем web_events
, и данные сохраняются в структуре ниже структуры.
{
"subscriber_id" : "amit",
"event" : "login"
},
{
"subscriber_id" : "manish",
"event" : "login"
},
{
"subscriber_id" : "manish",
"event" : "page_view"
},
{
"subscriber_id" : "manish",
"event" : "add_to_cart"
}
, и я хочу узнать, сколько пользователейсобытие do (вход в систему) и сколько пользователь делает (login, add_to_cart) оба события
вывод будет похож на .... ** (вход в систему) количество событий - 2, количество пользователей и (login, add_to_cart) количество событий- 1 пользователь в одном запросе **
Я использую два запроса для этого .... для входа в систему под запросом
db.web_events.aggregate([{$group:{_id:{subscriber_id:"$subscriber_id"},myfield:{$push:{$concat:["$event"]}}}},{$project:{"results":{$reduce:{input:"$myfield",initialValue:'',in:{$concat:["$$value","$$this"]}}}}},{$match:{results:{$regex:/.*login.*/}}}]);
и логини add_tocart
db.web_events.aggregate([{$group:{_id:{subscriber_id:"$subscriber_id"},myfield:{$push:{$concat:["$event"]}}}},{$project:{"results":{$reduce:{input:"$myfield",initialValue:'',in:{$concat:["$$value","$$this"]}}}}},{$match:{results:{$regex:/.*login.*add_to_cart.*/}}}]);
Я хочу запустить оба агрегата в одном запросе проекции.
Любая помощь приветствуется.