10

達人-次のコレクション「 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とDate+7の間にサインアップし、Date内にログインしたユーザーの一意のログイン

それで:

DateとDate+7の間にサインアップし、Date+7とDate+14の間にログインしたユーザーの一意のログイン

この例/サンプルをどのように達成できるかを教えてください。これに基づいて本当に役立ちます:-)

どうもありがとう!

4

1 に答える 1

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}}}});

2つ目は、アクティビティ後の日付に開始日と終了日に7日を追加するというものです。

于 2010-11-25T15:47:23.390 に答える