#mongodb
#mongodb
Вопрос:
У меня есть программа, в которой задачи выполняются «пакетами». Представление моих документов на верхнем уровне выглядит следующим образом:
{
_id: "xxx",
status: "done",
startedAt: 123456,
finishedAt: 789101112,
tasks: [...] // Huge array of deeply nested objects
}
Возможно ли создать запрос для mongodb, который возвращает только длину tasks
массива в этом примере?
Желаемый результат:
{
_id: "xxx",
status: "done",
startedAt: 123456,
finishedAt: 789101112,
numTasks: 9999
}
Заранее благодарю вас за любые советы, которые вы можете дать.
Комментарии:
1. docs.mongodb.com/manual/reference/operator/aggregation/size
Ответ №1:
Вы можете использовать $size
db.collection.aggregate([
{
$addFields: {
numTasks: {
"$size": "$tasks"
}
}
}
])
Рабочая игровая площадка Mongo
Комментарии:
1. В точку! Спасибо за ваш совет. И спасибо за ссылку на игровую площадку mongo, это будет огромной помощью в будущем!