Доступ к данным в поисковой коллекции в конвейере? - PullRequest
0 голосов
/ 21 января 2020

Есть ли способ получить доступ к переменным и их данным в конвейере из объединенной / найденной коллекции? В свойстве $ addFields я хотел бы передать переменные в функцию, которая возвращает новые данные на основе этих значений.

await PoolModel.aggregate([
    {
      $match: {
        eventId: { $eq: eventIds[0] }
      }
    },
    {
      $lookup: {
        from: 'results',
        as: 'races',
        let: { userId: '$userId' },
        pipeline: [
          {
            $match: {
              $expr: {
                $and: [
                  { $eq: ['$eventId', eventIds[0]] }
                ]
              }
            }
          },
          {
            $addFields: {
              results: {
                newsPaper: functionToReturnData(startNumber, horseName, raceId)
              }
            }
          }

        ]
      }
    }
  ]);

Результат от агрегата выглядит следующим образом после его выполнения, и мне нужно получить доступ к ключу / значениям в массиве результатов (исходя из объединенной коллекции)

[
    {
        "_id": "5e1ebbc6cffd4b042fc081ab",
        "eventId": "id888",

        ....

        "checked": true,
        "races": [
            {
                "_id": "5e202321cffd4b042fc0ab3c",
                "eventId": "id888",
                "__v": 0,
                "results": [
                    {
                        "startNumber": 1,
                        "horseName": "horse1",
                        "raceId": "44",
                        "_id": "5e26f427cbab3e1237078e9b",
                        "newsPaper": "Here should returned data be"
                    },
                    {
                        "startNumber": 8,
                        "horseName": "horse1",
                        "raceId": "45",
                        "_id": "5e26f427cbab3e1237078e9a",
                        "newsPaper": "Here should returned data be"                        },
                    {
                        "startNumber": 7,
                        "horseName": "horse1",
                        "raceId": "46",
                        "_id": "5e26f427cbab3e1237078e99",
                        "newsPaper": "Here should returned data be"                        },
                    {
                        "startNumber": 7,
                        "horseName": "horse1",
                        "raceId": "47",
                        "_id": "5e26f427cbab3e1237078e98",
                        "newsPaper": "Here should returned data be"                        },

                ]
            }
        ]
    }
]
...