Как найти записи в одном запросе проекции в mongodb на основе выражения регулярного выражения в агрегации? - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть коллекция с именем 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.*/}}}]);

Я хочу запустить оба агрегата в одном запросе проекции.

Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...