【发布时间】:2019-06-03 15:36:33
【问题描述】:
我想在 7 天、15 天和 30 天中找到所有访问我的页面超过 3 天的用户
我找到访问我网站的用户总数,并根据用户进行计数,但它与我的结果不匹配
我的收藏是这样的
{
"_id" : ObjectId("5cf110a80556ac496396d07c"),
"user" : "sachin",
"event" : "page-navigation",
"data" : {
"url" : "/"
},
"addedAt" : ISODate("2019-05-14T11:31:52.755Z"),
"__v" : 0
}
{
"_id" : ObjectId("5cf110a80556ac496396d07c"),
"user" : "sachin",
"event" : "page-navigation",
"data" : {
"url" : "/"
},
"addedAt" : ISODate("2019-05-15T11:31:52.755Z"),
"__v" : 0
}
{
"_id" : ObjectId("5cf110a80556ac496396d07c"),
"user" : "sachin",
"event" : "page-navigation",
"data" : {
"url" : "/"
},
"addedAt" : ISODate("2019-05-16T11:31:52.755Z"),
"__v" : 0
}
等...考虑最多 45 天
请忽略 _id 和上面的示例数据,Sachin 在 1 周内访问了我的网站 3 天,并且在 7 天中有 3 天访问量如此之多
db.getCollection('usertracks').aggregate([
{$project: {
yearMonthDay: { $dateToString: { format: "%Y-%m-%d", date: "$addedAt", timezone: "+05:30" } }
}},
{
$group:
{
_id: {
addedAt: "$yearMonthDay",
user: "$user"
},
users: { $sum: 1 }
}
},
])
如果任何用户在 7 天内访问我的网站超过 3 天,它应该返回该用户详细信息。帮助我找到解决方案。
感谢您的帮助!
输出:
{
"user":"Sachin"
}
【问题讨论】:
-
找到 7 天中访问超过 3 天的用户?输出对象应包含访问超过 3 天的用户