【发布时间】:2015-11-03 13:58:40
【问题描述】:
我有以下格式的文件
{ "_id" : ObjectId("56119c0fe4b0f3b51d0132b1"), "ua" : "Mozilla/5.0 (Linux; Android 5.0; SM-G900V Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36", "userId" : "55e5d92ce4b0cc9c0a1f1633" }
{ "_id" : ObjectId("56119c0fe4b0f3b51d0132b4"), "ua" : "Mozilla/5.0 (Linux; Android 5.0; SM-G900V Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36", "userId" : "55f09147e4b0cc9c0a2cfe34" }
{ "_id" : ObjectId("56119ef6e4b0f3b51d013abe"), "ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A405 (5726401600)", "userId" : "55f09147e4b0cc9c0a2cfe34" }
{ "_id" : ObjectId("56119f64e4b0f3b51d013ae7"), "ua" : "Mozilla/5.0 (iPad; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A405 (5726401600)", "userId" : "55f09147e4b0cc9c0a2cfe35" }
ua 字段有用户代理字符串,它基本上包含用户设备信息。我想找出哪些用户正在使用 iOS(如果字符串包含“iPhone/iPad”)与 Android(如果字符串包含“Android”)。本质上我想要下面的输出
{ "userId" : "56153199e4b0f3b51d043d36" , "iOS": "Yes", "Android" : "No"}
{ "userId" : "55f09147e4b0cc9c0a2cfe34" , "iOS": "Yes", "Android" : "Yes"}
{ "userId" : "56153199e4b0f3b51d043d36" , "iOS": "No", "Android" : "Yes"}
对此的聚合查询是什么样的?
【问题讨论】:
-
找不到聚合框架的方法。试试我的 MapReduce 示例,让我知道这是否可行。
-
谢谢。这对我有用。我看不到您在此处发布的 MapReduce 答案了!!
标签: mongodb aggregation-framework