【发布时间】:2017-06-23 11:46:48
【问题描述】:
我是 robmongo 的新手,我收到了一个任务来写一些查询。
假设我有一个集合,其中每个键都有一些值,例如“userId”值和“deviceModel”值。 我需要编写一个查询,显示每个设备型号有多少用户拥有该设备。 这是我到目前为止得到的:
db.device_data.aggregate([ {"$group" : {_id:"$data.deviceModel", count:{$sum:1}}}])
问题在于,它为每个设备汇总了它出现的键的数量。
{
"_id" : { "$binary" : "AN6GmE7Thi+Sd/dpLRjIilgsV/4AAAg=", "$type" : "00" },
"auditVersion" : "1.0",
"currentTime" : NumberLong(1479301118381),
"data" : {
"deviceDesign" : "bullhead",
"loginType" : "GOOGLE",
"source" : "SDKLoader",
"systemUptimeMillis" : 137652880.0,
"simCountryIso" : "il",
"networkOperatorName" : "Cellcom",
"hasPhonePermission" : true,
"deviceIdentifier" : "353627074839559",
"sdkVersion" : "0.7.939.2016-11-14.masterDev",
"brand" : "google",
"osVersion" : "7.0",
"osVersionIncremental" : "3239497",
"deviceModel" : "Nexus 5X",
"deviceSDKVersion" : 24.0,
"manufacturer" : "LGE",
"sdkShortBuildDate" : "2016-11-14",
"sdkFullBuildDate" : "Mon Nov 14 22:16:40 IST 2016",
"product" : "bullhead"
},
"timezone" : "Asia/Jerusalem",
"collectionAlias" : "DEVICE_DATA",
"shortDate" : 17121,
"userId" : "00DE86984ED3862F9277F7692D18C88A@1927cc81cfcf7a467e9d4f4ac7a1534b"}
这是一键锁定的示例。
【问题讨论】:
-
显示您的示例文档。将 sum : 1 更改为 $sum : "$userid" ... 如果我的文档结构正确..
-
现在,所有 deviceModel 的计数为 0
标签: javascript mongodb aggregation-framework