я могу добавить новое свойство при создании нового документа в mongoose? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть эта схема (например):

var WordSchema = new Schema({
    word: {
        type: String
    }
});
module.exports = mongoose.model('Word', WordSchema);

Как я могу добавить новое свойство при создании нового документа в mongoose? как то так:

let Word = require("../models/word");
let initWord = "hello";
word = new Word({
   word: initWord,
   length: initWord.length
});

word.save(function(error) {
  if (error) {  
    //some code              
  } else {
    //some code              
  }
});

Но это не работает

1 Ответ

0 голосов
/ 28 августа 2018

По умолчанию Mongoose не позволяет вам динамически добавлять поля в ваш документ. Но если вы создадите схему со строгим параметром false, вы можете:

var WordSchema = new Schema({
word: {
    type: String
}
}, {strict: false});

Чтобы получить свойство, которого нет в схеме, необходимо использовать

doc.toObject()

и используйте это, или используйте

doc.get('length')

в извлеченном объекте схемы.

...