Mongoose/ Mongodb: исключить поля из заполненных данных запроса

Я использую следующий запрос Мангуста в среде MEAN для поиска и вывода конкретного автора и его соответствующих книг.

Author
.findOne({personcode: code})
.select('-_id')
.select('-__v')
.populate('bookids') //referencing to book documents in another collection (->array of bookids)
.select('-_id') //this doens't affect the data coming from the bookids-documents
.select('-__v') //this doens't affect the data coming from the bookids-documents
.exec(function (err, data) {
   //foo
});

Я также хотел бы исключить поля "_id" и "__v" из заполненных данных, поступающих из внешних документов. Как этого можно достичь?

2 ответов


второй параметр populate - это строка выбора поля, поэтому вы можете сделать это как:

Author
  .findOne({personcode: code})
  .select('-_id -__v')
  .populate('bookids', '-_id -__v')
  .exec(function (err, data) {
    //foo
});

обратите внимание, что необходимо объединить выбранные поля в одну строку.


спасибо JohnnyHK, и для параметра объекта это работает:

Entity.populate({
    path: 'bookids',

    // some other properties
    match: {
        active: true
    },
    // some other properties

    select: '-_id -__v' // <-- this is the way
}).then(...) // etc