我的问题如下:
模型:
{ application: "abc", date: Time.now, status: "1" user_id: [ id1, id2, id4] }
{ application: "abc", date: Time.yesterday, status: "1", user_id: [ id1, id3, id5] }
{ application: "abc", date: Time.yesterday-1, status: "1", user_id: [ id1, id3, id5] }
我需要在一段时间内计算唯一的user_ids数量。
预期结果:
{ application: "abc", status: "1", unique_id_count: 5 }
我目前使用聚合框架,在mongodb外部计数ids。
{ $match: { application: "abc" } }, { $unwind: "$users" }, { $group: { _id: { status: "$status"}, users: { $addToSet: "$users" } } }
我的用户id数组非常大,所以必须迭代日期,否则将会达到文档最大限制(16mb)。
我还可以通过以下方式进行$group:
{ year: { $year: "$date" }, month: { $month: "$date" }, day: { $dayOfMonth: "$date" }
但我还是会受到文档大小限制。
在mongodb中有没有可能计算集合的大小?
谢谢