这个问题基于MongoDB,如何通过选择多个条件来检索选定的项目。这就像Mysql中的IN条件
SELECT * FROMvenuelistWHEREvenueidIN(venueid1,venueid2)
我附上了我使用过的json数据结构。[参考:MONGODB 的 JSON 结构].
例如,它有一个场地列表,然后在场地列表中,它有几个属性场地ID和用户代理名称和总计数的总和作为值。用户代理意味着用户操作系统,浏览器和设备信息。在这种情况下,我使用了 os 发行版。在这种情况下,我计数 linux,ubuntu 计数特定的场地 ID。
就是这样,
"sum" : [
{
"name" : "linux",
"value" : 12
},
{
"name" : "ubuntu",
"value" : 4
}
],
最后,我想通过在 MongoDB 中的一个查找查询中选择venueid 列表来获取所有 linux 用户数。
例如,我想通过条件 if 场地 id 选择所有 Linux 用户计数VID1212 or VID4343
参考:MONGODB 的 JSON 结构
{
"_id" : ObjectId("57f940c4932a00aba387b0b0"),
"tenantID" : 1,
"date" : "2016-10-09 00:23:56",
"venueList" : [
{
"id" : “VID1212”,
"sum" : [
{
"name" : "linux",
"value" : 12
},
{
"name" : "ubuntu",
"value" : 4
}
],
“ssidList” : [ // this is list of ssid’s in venue
{
"id" : “SSID1212”,
"sum" : [
{
"name" : "linux",
"value" : 8
},
{
"name" : "ubuntu",
"value" : 6
}
],
“macList” : [ // this is mac list inside particular ssid ex: this is mac list inside the SSID1212
{
"id" : “12:12:12:12:12:12”,
"sum" : [
{
"name" : "linux",
"value" : 12
},
{
"name" : "ubuntu",
"value" : 1
}
]
}
]
}
]
},
{
"id" : “VID4343”,
"sum" : [
{
"name" : "linux",
"value" : 2
}
],
"ssidList" : [
{
"id" : “SSID4343”,
"sum" : [
{
"name" : "linux",
"value" : 2
}
],
"macList" : [
{
"id" : “43:43:43:43:43:34”,
"sum" : [
{
"name" : "linux",
"value" : 2
}
]
}
]
}
]
}
]
}
我使用 golang 作为语言,使用 mgo.v2 包通过 mongodb 操作数据
预期输出是:
output
- linux:12+2=14
- Ubuntu:4+0=4
不要考虑场地列表中的内部列表。