quindi ho un mucchio di documenti semplici comeMongoDB somma delle dimensioni dei campi di matrice
{
"foos": [
ObjectId("5105862f2b5e30877c685c58"),
ObjectId("5105862f2b5e30877c685c57"),
ObjectId("5105862f2b5e30877c685c56"),
],
"typ": "Organisation",
}
e voglio scoprire la dimensione complessiva del associata foos
ai documenti di tipo "Organizzazione"
così ho questa query di aggregazione
db.profil.aggregate(
[
{
$match:{
"typ":"Organisation"
}
},
{
$project: {
fooos: { $size: "$foos" }
}
}
]
)
questo restituisce il conteggio di tutti i Foos per ogni documento
piace:
{ "_id" : ObjectId("50e577602b5e05e74b38a6c8"), "foooos" : 1 }
{ "_id" : ObjectId("51922170975a09f363e3eef5"), "foooos" : 3 }
{ "_id" : ObjectId("51922170975a09f363e3eef8"), "foooos" : 2 }
{ "_id" : ObjectId("5175441d975ae346a3a8dff2"), "foooos" : 0 }
{ "_id" : ObjectId("5192216f975a09f363e3eee9"), "foooos" : 2 }
{ "_id" : ObjectId("5192216f975a09f363e3eeeb"), "foooos" : 3 }
{ "_id" : ObjectId("5192216f975a09f363e3eee4"), "foooos" : 2 }
{ "_id" : ObjectId("5192216f975a09f363e3eee6"), "foooos" : 2 }
{ "_id" : ObjectId("5192216f975a09f363e3eedb"), "foooos" : 2 }
{ "_id" : ObjectId("51922174975a09f363e3ef4a"), "foooos" : 1 }
{ "_id" : ObjectId("5192216f975a09f363e3eee1"), "foooos" : 1 }
{ "_id" : ObjectId("5192216e975a09f363e3eed7"), "foooos" : 2 }
{ "_id" : ObjectId("5192216f975a09f363e3eeee"), "foooos" : 3 }
c'è qualche query che sarebbe tornato il conteggio riassunto per foos di tutti i documenti?
ho giocato arround con $ somma, ma non so come si combinano con la mia domanda, faccio solo ottenere errori di sintassi, che sarebbe stato bello sapere se questo è possibile
Si noti che il campo '_id' non è necessario. –
@MarkusWMahlberg Grazie per averlo notato. – chridam
wow, grazie mille funziona come un fascino! dovevo includere '" foos ": {$ ne: null}' alla query $ match per metterlo in funzione –