8

也许第二双眼睛可以看到我的架构出了什么问题

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`
4

2 回答 2

18

嵌入式架构(角色)需要在 UserSchema 之上

于 2012-07-05T23:22:04.193 回答
1

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

在较新版本的 mongoose 中,还需要使用以下语法来超越'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)

从 mongoose 3.x 切换到 4.x 时发生这种情况

于 2015-10-14T16:41:16.453 回答