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