2012-07-05 99 views
8

也许第二组的眼睛能看到什么是错我的架构的NodeJS - MongooseJS模式的错误,我无法弄清楚

var UserSchema = new Schema({ 
     name: 
       { 
         first : {type: String} 
        , last : {type : String} 
       } 
    , password: {type: String} 
    , username: {type: String} 
    , role: RoleSchema 
    , created_at : {type : Date, default : Date.now} 
    , modified_at : {type : Date, default : Date.now} 
}) 

var RoleSchema = { 
     type: [String] 
    , study_type: [String] 
} 

mongoose.model('User', UserSchema) 

的错误:

TypeError: Invalid value for schema path `role` 

回答

18

嵌入式架构(角色)需要高于UserSchema

+0

非常感谢您的回答....我花了超过6小时在这个...... :( – Machete 2015-04-29 21:13:02

1

除了必须在UserSchema之前导入角色模式之外。

在还需要以下语法的排序为,以获得超越'TypeError: Invalid value for schema Array path猫鼬的新版本:

var SomeSchema = new mongoose.Schema(); 

    SomeSchema.add({ 
    key1: { 
     type: String, 
     required: true 
    }, 
    key2: { 
     type: String, 
     required: true 
    }, 
    key3: { 
     type: String, 
     required: true 
    } 
    }); 

    SomeSchema.get(function(val){ 
    // Remove the _id from the Violations 
    delete val._id; 
    return val; 
    }); 

和家长:

var ParentSchema = new mongoose.Schema({ 
    parentKey: String, 
    someArray: [SomeSchema] 
}) 

module.exports = mongoose.model('Parent', ParentSchema) 

这从猫鼬3切换时发生.x到4.x