więc mam kilka prostych dokumentów jakMongoDB Podsumowując wielkość pól tablicy
{
"foos": [
ObjectId("5105862f2b5e30877c685c58"),
ObjectId("5105862f2b5e30877c685c57"),
ObjectId("5105862f2b5e30877c685c56"),
],
"typ": "Organisation",
}
i chcę, aby dowiedzieć się ogólnej wielkości związanej foos
do dokumentów typu „organizacja”
więc mam tego zapytania kruszywo
db.profil.aggregate(
[
{
$match:{
"typ":"Organisation"
}
},
{
$project: {
fooos: { $size: "$foos" }
}
}
]
)
ta zwraca liczbę wszystkich Foo dla każdego dokumentu
lubię:
{ "_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 }
jest jakiś zapytanie, które zwróci podsumował liczyć na Foo wszystkich dokumentów?
grałem arround z $ sumy, ale nie wiem jak to połączyć z moim zapytaniu, ja tylko nie pojawiają się błędy składniowe, to byłoby fajnie wiedzieć, czy jest to możliwe
Należy zauważyć, że pole '_id' nie jest konieczne. –
@MarkusWMahlberg Dzięki za zwrócenie na to uwagi. – chridam
Wow, dziękuję bardzo, że działa jak charme! Musiałem dołączyć "foos": {$ ne: null} 'do zapytania $ match, aby uruchomić go –