Structure des données - un seul document dans une grande collection:MongoDB Chaîne de la propriété commence par requête et Set Group Id
{
OPERATINGSYSTEM: "Android 6.0"
}
Problème: Le OperatingSystem peut égaler par exemple "Android 5.0", "Android 6.0", "Windows Phone", "Windows Phone 8.1"
Aucune propriété ne contient uniquement le type de système d'exploitation, par ex. seulement Android
.
Je dois connaître le nombre de téléphones Windows et de téléphones Android.
Ma solution temporaire:
db.getCollection('RB').find(
{OPERATINGSYSTEM: {$regex: "^Android"}}
).count();
que je fais cette requête par le remplacement "^Android"
windows phone et ainsi de suite qui prend beaucoup de temps et doit être fait en parallèle.
En utilisant le cadre d'agrégation Je pensais à ce sujet:
db.RB.aggregate(
{$group: {_id: {OPERATINGSYSTEM:"$OPERATINGSYSTEM"}}},)
Mais en utilisant ce que je reçois une entrée pour chaque version OperatingSystem Android 5.0
, Android 6.0
etc ...
La solution que je cherche devrait retourner les données dans ce format:
{
"Android": 50,
"Windows Phone": 100
}
Comment cela peut-il être fait dans une seule requête?
Vous avez raison le cadre d'agrégation n'est pas la meilleure solution dans ce cas. –