【发布时间】:2022-02-05 01:21:41
【问题描述】:
根据此数据中的唯一身份访问者 ID 查找唯一身份访问者的最佳方法是什么? 我在 Nodejs/Express 环境中使用 Mongoose。
{
username: "jack",
events: [
{
eventType: "party",
createdAt: "2022-01-23T10:26:11.214Z",
visitorInfo: {
visitorId: "87654321-0ebb-4238-8bf7-87654321"
}
},
{
eventType: "party",
createdAt: "2022-01-30T10:26:11.214Z",
visitorInfo: {
visitorId: "87654321-0ebb-4238-8bf7-87654321"
}
},
{
eventType: "party",
createdAt: "2022-01-29T10:26:11.214Z",
visitorInfo: {
visitorId: "12345678-0ebb-4238-8bf7-12345678"
}
},
{
eventType: "party",
createdAt: "2022-01-31T10:16:11.214Z",
visitorInfo: {
visitorId: "12345678-0ebb-4238-8bf7-12345678"
}
}
]
}
我正在尝试什么:
Event.aggregate([
{ $match: "jack" },
{ $unwind: "$events" },
{ $match: { "events.eventType": "party" } },
{
$group: {
_id: "$events.visitorInfo.visitorId",
count: { $sum: 1 },
},
},
]);
这给出了唯一访问者 ID 的频率,我认为可能有一种方法可以使用它来获取唯一访问者,但我正在尝试找到一种更快、更快的方法来根据唯一访问者 ID 查找唯一访问者数量,然后再去进入兔子洞。
我最后的期待:
visitors: {
totalVisitors: 4,
uniqueVisitors: 2
}
感谢任何帮助或指导。谢谢!
【问题讨论】:
标签: javascript mongodb mongoose nosql aggregate