我有两个单独的mongodb集合search
和objects
,它们记录了一些用户操作,例如在我的网站上使用搜索页面和查看对象页面。
两个冷却都以相同的方式存储用户cookie:
{
"_id" : ObjectId("55ac35499db5acdb1c8b4567"),
...
"user" : {
"id" : "12007",
"cookie" : "LffDjUQHogfrihI2z/FlzQ",
},
"createddate" : ISODate("2015-09-20T02:39:53.780+0000")
}
现在,我需要每天统计这两个系列中的唯一身份用户。 我知道如何在一个集合中计算它们:
db.objects.aggregate([
{ "$group": {
"_id":{
"$subtract": [
"$createddate",
{ "$mod": [
{ "$subtract": [ "$createddate", ISODate("1970-01-01T00:00:00.000+00:00") ] },
1000 * 60 * 60 * 24
]}
]
},
'users' : {$addToSet : '$user.cookie'},
}
},
{$project: {_id : 0, date : '$_id', users : {$size : "$users"}}},
])
所以我每天都会得到独特的饼干数量。问题是,并非所有进行搜索的人都会进入对象页面(但其中一些人会去)所以我需要每天通过两个收集来获取独特的Cookie集。 我可以从每个集合中获取每日独特cookie的数组,并在应用程序端进行合并和计数,但我确信它可以在db端完成。请帮忙。
答案 0 :(得分:1)
唯一的方法是执行单独的mongodb查询并在应用程序级别合并它们。