【发布时间】:2019-10-24 21:11:00
【问题描述】:
我有一个使用 MongoDB 编写的分析 API。
这是我的会话模型
const sessionSchema = new Schema(
{
user: { id: Number, name: String, email: String },
},
{ timestamps: true },
);
我想按日期计算唯一用户数。
对于日期 2019-10-24,可能有来自两个用户(id 1,id 2)的 10 个会话 和
对于日期 2019-10-25,可能有来自两个用户(id 3,id 8)的 20 个会话
所以我的预期结果是
2019-10-24 2 位用户
2019-10-25 2 位用户
我试过了
db.Session.aggregate([
{
$group: {
_id: { user: '$user.id', day: { $dayOfYear: '$createdAt' } },
count: { $sum: 1 },
},
},
])
这似乎不起作用。
我的createdAt 字段的类型是Date (eg:- createdAt: 2019-10-16T13:11:17.935Z) 这就是我使用$dayOfYear: '$createdAt'的原因
【问题讨论】:
标签: javascript node.js mongodb mongoose