Мангуст использует заполнение массивом идентификаторов - PullRequest
0 голосов
/ 03 мая 2018

Есть ли способ использовать populate для получения только документов с идентификаторами, указанными в массиве?

Например, вот как это работает сейчас

Collection.findOne({element: elementId})
.populate({
  path: references
})
.exec((err, run) => {
  ....
});

И я ищу что-то вроде:

Collection.findOne({element: elementId})
.populate({
  path: {references: {_id: ["5ae9b6ac268d162b15747340", "5ae9b6ac268d162b15747341"]}}
})
.exec((err, run) => {
  ....
});

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

используйте $in и match в заполненном запросе

Collection.findOne({element: elementId})
.populate({
  path: 'references',
  match: {
    _id: {
      $in: ["5ae9b6ac268d162b15747340", "5ae9b6ac268d162b15747341"]
    }
  }
})
0 голосов
/ 03 мая 2018

Да, вам необходимо сначала объявить его в схеме mongoose, чтобы он знал, откуда следует заполнять данные. Пожалуйста, обратитесь к: http://mongoosejs.com/docs/populate.html

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