regex - 如何在聚合中基于正则表达式在mongodb中查找单投影查询中的记录?
问题描述
我有一个名为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"
}
我想知道有多少用户执行(登录)事件以及有多少用户执行(登录,add_to_cart)这两个事件
输出将类似于 .... ** (login) 事件计数 - 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.*/}}}]);
我想在单个投影查询中运行这两个聚合。
任何帮助表示赞赏。
解决方案
推荐阅读
- c# - 来自 SQL Server CLR Proc 的 Azure 存储中的 Blob 列表,未获得完整列表
- activemq - 在 C# 中获取 ActiveMQ 队列或接收器中的消息计数
- swift - 如何更改 DCMTK 中的默认网络套接字超时?
- swing - 如何在 JavaFX 应用程序中显示 OpenCV 网络摄像头捕获帧
- ios - SwiftUI - ActionSheet 中的动态按钮?
- sap - 如何在超级账本结构中索引 couchdb
- php - recaptcha v2 的基本服务器集成
- css - CSS 线性渐变和画布线性渐变与不透明度设置不同
- java - 如何使用 Java 跨多个文件内容复制更新?
- c# - 从 C# 中的 onnx 模型读取自定义元数据