Подсчет элементов в конвейере поиска - PullRequest
0 голосов
/ 10 июля 2020

У меня две коллекции: parent и children.

Моя родительская коллекция:

{
    "_id": {
        "$oid": "5f0899303a766b020f0062aa"
    },
    "children": "aaa"
},
{
    "_id": {
        "$oid": "5f0899173a766b020f0062a8"
    },
    "children": "aaa"
}

Моя детская коллекция:

{
    "_id": {
        "$oid": "5f0899d13a766b020f0062ab"
    },
    "uid": "aaa"
}

Я пытаюсь найти количество parent элементов для каждого элемента в коллекции children. Ссылка: children в коллекции parent и uid в коллекции children.

У меня есть такое агрегирование:

const agg = [
    {
        '$lookup': {
            'from': 'parent',
            "let": { "the_uid": "$uid" },
            'pipeline': [
                {
                    '$match':
                    {
                        '$expr':
                        {
                            '$eq': ["$$the_uid", "$children"]
                        }
                    }
                },
                { "$count": "count" }
            ],
            'as': 'parent_count'
        }
    },
    {
        '$limit': 5
    }
];

Результат этого агрегирования это:

{
  _id: 5f0899d13a766b020f0062ab,
  uid: 'aaa',
  parent_count: [ { count: 2 } ]
}

Я хотел бы знать, как я мог бы получить более похожий результат (так что упростите результат parent_count):

{
  _id: 5f0899d13a766b020f0062ab,
  uid: 'aaa',
  parent_count: 2
}

Спасибо за ваш ответ.

...