Recupere a lista de itens verificando vários valores de atributo no MongoDB em golang
Esta questão com base no MongoDB, Como recuperar itens selecionados recuperar selecionando várias condições.É como a condição IN no Mysql
SELECIONE * DO venuelista ONDE venueid IN (venueid1, venueid2)
Anexei a estrutura de dados json que usei.[Ref: JSON ESTRUTURA DO MONGODB].
Por exemplo, ele possui uma lista de locais e, em seguida, dentro da lista de locais, possui vários IDs de locais de atributos e soma do nome dos agentes do usuário e contagem total como valor. Neste caso eu usei os distribuição. Nesse caso, eu era count linux, ubuntu count em particular venueid.
é tipo isso,
"sum" : [
{
"name" : "linux",
"value" : 12
},
{
"name" : "ubuntu",
"value" : 4
}
],
Finalmente, quero obter a contagem de toda a contagem de usuários do linux, selecionando a lista de locais em uma consulta de localização no MongoDB.
Como exemplo, quero selecionar toda a contagem de usuários do Linux condicionando se o ID do localVID1212 ouVID4343
Ref: JSON ESTRUTURA DO MONGODB
{
"_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
}
]
}
]
}
]
}
]
}
Estou usando o golang como linguagem para manipulação de dados com o mongoldb usando o pacote mgo.v2
O resultado esperado é:
resultado
linux: 12 + 2 = 14Ubuntu: 4 + 0 = 4Não considere a lista interna de venuelistas.