MongoDB - 如何从集合中查询嵌入式文档

Sye*_*der 10 collections documents mongodb

大师 - 我陷入了一种情况,我无法弄清楚如何从以下集合" 用户 " 查询,它有2个嵌入文档" 注册 "和" 活动 ":

{
    "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...}
Run Code Online (Sandbox Code Playgroud)

我需要查询:

在日期和日期+7之间注册并在日期内登录的用户的唯一登录

然后:

在日期和日期+7之间注册,并在日期+7和日期+14之间登录的用户的唯一登录

请指导我如何实现这个任何示例/样本?基于这将是非常有帮助的:-)

非常感谢!

Jef*_*ear 8

以下是获取第一个查询结果的方法:

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}}}});
Run Code Online (Sandbox Code Playgroud)

第二个是在活动结束后的7天开始和结束日期.