Node.js Mongoose模型方法:属性don';你不存钱吗?

Node.js Mongoose模型方法:属性don';你不存钱吗?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我试图在mongoose模型上编写一个方法,该方法将根据我传入的对象填充一些字段 let mySchema = mongoose.Schema({ name: String, age: Number, street: { type: String, default: 'No' } }); mySchema.methods.populate = function(o) { this.age = o.age + 10; }); 在其他地方,我将初始化一个实例并运行

我试图在mongoose模型上编写一个方法,该方法将根据我传入的对象填充一些字段

let mySchema = mongoose.Schema({
    name: String,
    age: Number,
    street: { type: String, default: 'No' }
});

mySchema.methods.populate = function(o) {
    this.age = o.age + 10;
});
在其他地方,我将初始化一个实例并运行该方法:

let newThing = new MySchema();
newThing.populate({ age: 12 });
newThing.save();

这将成功地在mongo中保存一个新对象,除默认街道名称外,没有其他属性。我做错什么了吗?

您可以参考这段代码,这段代码可以正常工作

server.js中

    var mongoose = require('mongoose')
    var Model = require('./model')

    mongoose.Promise = global.Promise;
    mongoose.connect('**dbUrl**')

    var NewData = new Model({
        name: 'Tolsee'
    })

    NewData.populate({ age: 15 })

    NewData.save(function(err){
        if (err) {
            throw err
        }else{
            console.log('Your data is saved successfully')
        }
    })
var mongoose = require('mongoose')
var Schema = mongoose.Schema

const customSchema = new Schema({
    name: String,
    age: Number,
    street: { type: String, default: 'No' }
}) 

// Custom function
customSchema.methods.populate = function(o) {
    this.age = o.age
    return this.age
}

// create the model to export 
var custom = mongoose.model('customModel', customSchema)

module.exports = custom
model.js中

    var mongoose = require('mongoose')
    var Model = require('./model')

    mongoose.Promise = global.Promise;
    mongoose.connect('**dbUrl**')

    var NewData = new Model({
        name: 'Tolsee'
    })

    NewData.populate({ age: 15 })

    NewData.save(function(err){
        if (err) {
            throw err
        }else{
            console.log('Your data is saved successfully')
        }
    })
var mongoose = require('mongoose')
var Schema = mongoose.Schema

const customSchema = new Schema({
    name: String,
    age: Number,
    street: { type: String, default: 'No' }
}) 

// Custom function
customSchema.methods.populate = function(o) {
    this.age = o.age
    return this.age
}

// create the model to export 
var custom = mongoose.model('customModel', customSchema)

module.exports = custom

首先,您需要创建一个模型以使用模式。这些模型的实例是可以使用您定义的自定义方法的文档。

您正在导出模式吗?因为您的代码中没有其他错误。@Khurram如果不导出架构,他能保存默认值吗?