模型和模式,为什么我不能在我的模型上设置属性

时间:2017-06-21 21:40:34

标签: node.js mongoose mongoose-schema

我写了这个非常好的模型/模式,因为有人告诉我这是这样做的方法:

var Schema = mongoose.Schema;
var bookingSchema = new Schema({
    _id:                    String,     // Unique booking ID
    property:               String,     // Property ID --> property.._id
    checkin:                Number,     // Check in Date
    checkout:               Number,     // Check out Date
    priceNight:             Number,     // Price pr night in THB
    priceReservation:       Number,     // Reservation Fee in THB
    priceSecurity:          Number,     // Safety Deposit in THB
    arrival:                String,     // When will tenant arrive
    departure:              String      // When will tenant depart  
});
module.exports = mongoose.model('bookingModel', bookingSchema, 'booking');

然后我认为这象征着你的mongodb表/集合的结构,但在我看来它完全没有区别天气我写了一个很好的正确模型或只是创建一个名为whatever:string的字段。

如果mongodb dosnt关心你的漂亮结构,那么制作好模特的重点是什么?

现在我想创建一个新的预订,所以我会假设我可以使用我的漂亮模型输入数据,然后使用我的漂亮模型创建预订。

var bookingModel = require('../models/bookingModel');
var bookingRecord = mongoose.model('bookingModel');

console.log("bookingRecord: " + bookingRecord);
console.log("bookingRecord: " + JSON.stringify(bookingRecord, null, 4));

bookingRecord.property = "WAT-606"

console.log("bookingRecord: " + bookingRecord);
console.log("bookingRecord: " + JSON.stringify(bookingRecord, null, 4)); 

但我得到的是以下输出:

bookingRecord: function model(doc, fields, skipId) {
      if (!(this instanceof model)) {
        return new model(doc, fields, skipId);
      }
      Model.call(this, doc, fields, skipId);
    }
bookingRecord: undefined
bookingRecord: function model(doc, fields, skipId) {
      if (!(this instanceof model)) {
        return new model(doc, fields, skipId);
      }
      Model.call(this, doc, fields, skipId);
    }
bookingRecord: undefined

再一次,关于编写这些漂亮模型的重点是什么?

我阅读了很多文档,但我觉得当mongodb无论如何忽略它们时,它们都没有解释这些模型和模式是什么有用的。

0 个答案:

没有答案