大师--我陷入了一种无法从以下集合"users“中查询的境地,它有2个嵌入式文档"signup”和"activity":
{
"appid": 2,
"userid": 404915,
"signup": {
"dt": "2010-12-28",
"platform": 2
},
"activity": {
{
"dt": "2010-12-28",
"platform": 3,
"login_count": 8,
"game_completed": 13
},
{
"dt": "2010-12-30",
"platform": 3,
"login_count": 8,
"game_completed": 13
} ,
{
"dt": "2010-12-31",
"platform": 3,
"login_count": 8,
"game_completed": 13
}
}
},{"appid":2,"userid":404915...}我要问:
在日期和Date+7之间注册并在日期内登录的用户的唯一登录
然后:
在日期和Date+7之间注册的用户的唯一登录,以及Date+7和Date+14之间的登录
请指导我如何做到这一点,任何例子/样本?基于此将非常有帮助:-)
非常感谢!
发布于 2010-11-25 15:47:23
下面是如何获得第一个查询的结果:
var start = new Date(2010, 11, 25);
var end = new Date(2010, 12, 1);
db.users.distinct("userid", {"signup.dt" : {$gte: start, $lte: end},
"activity" : {"$elemMatch" : { dt: {$gte: start, $lte: end}}}});第二种方法是将7天的开始日期和结束日期添加到活动结束后的日期。
https://stackoverflow.com/questions/4278298
复制相似问题