В моей коллекции есть документ:
{
"_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".
Моя функция такова:
var BudgetSchema = require('../models/Budget');
router.post('/temp', async function (req, res) {
var length = await BudgetSchema.aggregate(
[{ $match: { user_email: "test@test.com" } },
{ $project: { "count": { $size: '$platforms_budget' } } }])
console.log(length);
})
Вывод, который я получаю:
[ { _id: 5b8aaaebf57de10e080c9151, count: 3 } ]
Но я хочу получить только размер в виде числа, например: 3.
Вывод, который я хочу получить:
3
Я понимаю, что могу использовать оператор $ slice , но не могу понять, как правильно его использовать. Есть идеи?
Спасибо.