我有一个数据子集
具有登录日期等的用户,然后是位置集合。
我想获取在某个日期范围内登录的所有用户,然后查看每个郊区有多少人这样做
现在,在 SQL 中,我将加入表格,进行一些分组和计数。
但是在 mongo 中,我不确定最好的方法是使用聚合函数还是 map reduce 功能。
{
"_id" : ObjectId("50174af210bb50b471000036"),
"state_code" : "ACT",
"suburb" : "Barton",
"postcode" : 221,
"loc" : [149.129623, -35.302345]
}
个人资料看起来像这样
{
"_id" : ObjectId("50176d9b539ba2903e000001"),
"created_at" : ISODate("2012-07-31T05:31:07.538Z"),
"gender" : "female",
"first_name" : "Marge",
"last_name" : "Simpson",
"location_id" : ObjectId("50174af210bb50b471000235"),
"s_location_name" : "Surry Hills (NSW)",
"updated_at" : ISODate("2012-10-18T23:29:54.979Z"),
"user_id" : ObjectId("50176c2510bb50a618000002")
}
并且用户有最后一次登录
{ "_id" : ObjectId("50176c2510bb50a618000002"),
"created_at" : ISODate("2012-07-31T03:09:47.363Z"),
"last_sign_in_at" : ISODate("2012-10-08T04:56:53.751Z"),
"updated_at" : ISODate("2012-10-30T03:52:33.976Z")
}
我想要的是
墨尔本 X 用户在某个日期范围内注册
所以 SQL 伪代码将是
select suburb, count(*)
from user
where last_login between x and y
group by suburb