Как выбрать поля из заполненных документов, но с помощью выбора на родительском документе? - PullRequest
1 голос
/ 06 апреля 2020

Я пытаюсь реализовать ограничение поля, похожее на API Spotify

, т.е. items(a,b(c,d)) выберет items.a, items.b. c, items.bd

In в моем случае у меня есть заполненное поле (добавлено) в моем основном документе (track.items)

"tracks": {
    "href": "https://api.spotify.com/v1/playlists/5e8a3a6e263b6431749b1c2f/tracks",
    "items": [
      {
        "is_local": false,
        "_id": "5e8a3d7214fc7751301abd87",
        "added_at": "2020-04-05T20:20:02.773Z",
        "added_by": {
          "type": "artist",
          "_id": "5e8a399a263b6431749b1c27",
          "name": "Artist Account",
          "uri": "spotify:user:5e8a399a263b6431749b1c27",
          "id": "5e8a399a263b6431749b1c27"
        }
     ]
}

Я хочу выбрать поля внутри заполненного поля (добавлено_by), отправив запрос на ограничение tracks.items.added_by(type,name), но без необходимости синтаксического анализа строки вручную для вызова объекта выбора mon goose по населению, поскольку действительно сложно проанализировать строку для многих заполненных полей

Что я имею в виду, в моем коде у меня есть это

Playlist.findById(playlistId, queryObject)
    .populate([
      {
        path: 'tracks.items.track',
        select: populationFields,
        populate: [
          {
            path: 'album',
            select:
              'album_type artists id images name type uri external_urls href',
            populate: {
              path: 'artists',
              select: 'external_urls href id name type uri'
            }
          },
          {
            path: 'artists',
            select: 'external_urls href id name type uri'
          }
        ]
      },
      {
        path: 'tracks.items.added_by',
        select: 'name id type uri href'
      }
    ]),
  queryParams
)

Я хочу легко реализовать запрос ограничения поля, показанный выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...