Я пытаюсь построить схему Mongoose, которая включает вложенный документ, поэтому у меня может быть один документ с информацией о пользователе и их контактами. Идея состоит в том, чтобы иметь возможности CRUD в поддоку Контакты, не требуя отдельной коллекции.Недокументированные схемы не работают
(Извините за констатирую очевидное, просто хочу быть ясно)
Так родительская схема является «Пользователь» и субтропических его «Контакты» ...
Я закодирован мою модель, как это:
var UserSchema = new Schema({
login: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true
},
email:{
type: String,
required: true
},
firstname:{
type: String,
required: false
},
lastname: {
type: String,
required: false
},
contacts:[ContactSchema]
})
var ContactSchema = new Schema({
contactFirstName:{
type: String,
required: true
},
contactLastName:{
type: String,
required: true
},
contactEmail: {
type: String,
required: true
}
})
Но когда я запускаю мой API, я получаю сообщение об ошибке с указанием:
TypeError: Недопустимое значение схемы массива пути contacts
Я довольно новичок в Mongoose, но из того, что я видел, вы реализуете поддокумент.
Может ли кто-нибудь увидеть, что мне не хватает?
Вот маршрут образца я хочу позвонить в моем экспрессе API:
router.route('/')
//CREATE NEW USER
.post(function(req, res){
var user = new User();
user.login = req.body.login;
user.firstname = req.body.firstname;
user.lastname = req.body.lastname;
user.email = req.body.email;
user.password = req.body.password;
user.contacts.contactFirstName = req.body.contacts.contactFirstName;
user.contacts.contactLastName = req.body.contacts.contactLastName;
user.save(function(err){
if(err)
res.send(err);
res.json({message:'User has been created'});
})
})
Thanks @mrtaz. Я попытался просто удалить скобки и вызвать var сразу после (contacts: contactSchema) и получил ту же ошибку. Я использую мангуст 4.5.5. – cnak2
Добавить схему контактов выше пользователя – mrtaz