Mongoose, найти, вернуть определенные свойства
У меня есть звонок:
exports.getBIMFromProject = function(req, res){
mongoose.model('bim').find({projectId: req.params['prj_id']}, function(err, bim){
if(err){
console.error(err);
res.send(500)
}
res.send(200, bim);
});
};
Где указать, какие свойства я хочу вернуть? Не удается найти его в документах. Вышеприведенный возвращает весь объект. Мне нужно только вернуть несколько свойств.
Это моя схема:
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var bimSchema = new Schema({
projectId: Number,
user: String,
items:[
{
bimObjectId: Number,
typeId: String,
position:{
floor: String,
room:{
name: String,
number: String
}
}
}
]
});
mongoose.model('bim', bimSchema);
Я не хочу, чтобы массив элементов включался в мой вызов для отдыха.
Ответы
Ответ 1
Вы используете проецирование. В первом примере в документах запросов мангуста есть операция проецирования.
NB: не настоящий код b/c Я выделил важные биты с тройными звездами
// find each person with a last name matching 'Ghost', ***selecting the 'name' and 'occupation' fields***
Person.findOne({ 'name.last': 'Ghost' }, ***'name occupation'***, function (err, person) {
if (err) return handleError(err);
console.log('%s %s is a %s.', person.name.first, person.name.last, person.occupation) // Space Ghost is a talk show host.
})
Схема Person
не указана, но я думаю, что этот пример достаточно ясен.
Ответ 2
Вам нужно определить схемы вашей модели http://mongoosejs.com/docs/guide.html