У меня есть структура документа, подобная этой:
{
_id:
name:
parent:
}
У меня есть документы, что у некоторых из них есть parentID (например, дерево). Я хочу получить один документ на основе идентификатора, а также количество дочерних элементов, которые есть у конкретного документа.
Например:
{
_id:1
name: 1
parent:
}
{
_id:2
name: 2
parent: 1
}
{
_id:3
name: 3
parent: 1
}
Я хочу найти по id 1 и получить что-то вроде этого
{
_id:1
name: 1
parent:
childCount: 2
}
Это возможно?
С уважением

вы можете сделать себя $lookup, чтобы дети считали
db.tp1.aggregate([
{$lookup: {from:"tp1", localField : "_id", foreignField: "parent", as: "children"}},
{$addFields:{children : {$size : "$children"}}}
])
результат
{ "_id" : 1, "name" : 1, "parent" : null, "children" : 2 }
{ "_id" : 2, "name" : 2, "parent" : 1, "children" : 0 }
{ "_id" : 3, "name" : 3, "parent" : 1, "children" : 0 }
вы можете сделать $groupparent и $count детей
Есть ли способ сделать это без оператора $lookup @saravana? Это работало как шарм в локальном орехе. Я использую DocumentDB в AWS, и, хотите верьте, хотите нет, но он не поддерживает эту функцию. docs.aws.amazon.com/documentdb/latest/developerguide/…