MongoDB でユーザー維持率を計算しようとしています。MongoDB のレコードは次のようになります。
{
"event" : "$signup",
"properties" : {
"country" : "GB",
"device" : "iPad",
"ref" : "Facebook",
"token" : "baddf3b44149c8f836f28d3750d4d6cf",
"time" : ISODate("2013-03-26T21:16:52Z"),
"distinct_id" : 8
},
"_id" : ObjectId("51784bc5c83494cb98000001")
}
私の考えは:
ステップ 1、2013 年 4 月 1 日のようなある日、ユーザーにサインアップしてもらう
ステップ 2、結果をログイン時間とカウントにグループ化する
しかし、実際には、これによりステップ1で立ち往生しています:
db.rawData.aggregate(
{$match:
{event: "$signup",
"$properties.time": {"$gte": new Date(2013, 4, 15), "$lte": new Date(2013, 4, 20)}
}
},
{$group:
{
_id:"$properties.distinct_id"
}
}
);
時間の無条件で結果が得られるのに、時間の条件があると何も得られません。
ステップ 2 についてはわかりません。よろしくお願いします。ありがとう。