2012-07-05 22 views
8

Có lẽ một bộ thứ hai của mắt có thể nhìn thấy những gì là sai với schema của tôiNodeJS - MongooseJS lỗi schema mà tôi không thể tìm ra

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) 

Các Lỗi:

TypeError: Invalid value for schema path `role` 

Trả lời

18

Schema nhúng (Roles) cần phải ở trên UserSchema

+0

cảm ơn rất nhiều câu trả lời của bạn .... Tôi dành hơn 6h cho việc này ... :( – Machete

1

Ngoài lược đồ Vai trò phải được nhập trước UserSchema.

Trong các phiên bản mới hơn của cầy mangut các loại sau đây của cú pháp cũng là cần thiết để có được vượt quá '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; 
    }); 

Và phụ huynh:

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

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

Điều này xảy ra khi chuyển đổi từ cầy mangut 3 .x đến 4.x

Các vấn đề liên quan