Подтвердить что ты не робот

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);

Я не хочу, чтобы массив элементов включался в мой вызов для отдыха.

4b9b3361

Ответ 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 не указана, но я думаю, что этот пример достаточно ясен.