У меня есть mongodb с некоторыми JSON данными, которые включают и вложенные массивы. Я пытаюсь сделать запрос, чтобы подсчитать, сколько документов имеют определенное значение. Например, вот как выглядят мои json данные:
{
"_id" : ObjectId("5ecb815bf4b8512918224e71"),
"array1" : [
{
"_id" : ObjectId("5ecb815bf4b8512918224e85"),
"xxxx" : "1450",
"yyyy" : 83,
"array2" : [
{
"_id" : ObjectId("5ecb815bf4b8512918224e88"),
"aaaa" : "1470420945276",
},
{...},
{...}]
}
Я пытаюсь выполнить следующий запрос:
db.example.aggregate([
{
$project: {
value1: {
$filter: {
input: "$array1",
as: "array",
cond: { $eq: [ "$$array.array2.aaaa" , "1470420945276" ] }
}
}
}
},
{
$project: {
value1Count: { $size: "$value1" }
}
}
])
Но не работает и возвращает это значение 1Count = 0. Похоже, он не переходит в array2, чтобы прочитать значение 'aaaa'. Любая помощь?