В моей коллекции есть документ:
{
"_id" : ObjectId("5b8aaaebf57de10e080c9151"),
"user_email" : "temp@temp.com",
"platforms_budget" : [
{
"_id" : ObjectId("5b8aaaebf57de10e080c9154"),
"platform_id" : "f_01",
"platform_name" : "Facebook"
},
{
"_id" : ObjectId("5b8aaaebf57de10e080c9153"),
"platform_id" : "i_01",
"platform_name" : "Instagram"
},
{
"_id" : ObjectId("5b8aaaebf57de10e080c9152"),
"platform_id" : "f_02",
"platform_name" : "Facebook_Adds"
}
],
"__v" : 0
}
Я хочу найти конкретного пользователя с помощью "user_email" и получить длину соответствующего массива "platform_budget". Который в этом случае предполагает длину = 3.
Моя функция такова:
var BudgetSchema = require('../models/Budget');
router.post('/temp', async function (req, res) {
var length = await BudgetSchema.aggregate(
[{ $match: { user_email: "test@test.com" } }, { $unwind: "$platforms_budget" },
{ $project: { "platforms_budget.count": { $size: '$platforms_budget' } } }])
console.log(length);
})
Когда я пытаюсь использовать console.log (length), я получаю пустой массив.
Я видел другие ответы на stackoverflow, такие как этот , но я все еще не могу понять, что я делаю неправильно или как извлечь размер из ответа.
Как мне получить размер массива "platform_budget"?
Спасибо.