Я пытаюсь создать модель для моей базы данных mongodb, используя mongoose. Это то, что я пытаюсь сделать:
var Class = mongoose.model('Class', {className: String, marks: [{type: Number}], grades: [{type: Number}]});
var User = mongoose.model('User', {email: String, classes: [Class] });
//Lets create a new user
var class1 = new Class({className: 'aaa', marks: [72, 88, 63], grades: [30, 40, 30]});
var user1 = new User({email: '[email protected]', classes: [class1]});
Сохранение class1
похоже, работает нормально, но когда я проверяю mongodb, это отображается: { "_id": ObjectId("someId"), "className": "TEST1234", "grades": [ 30, 40, 30 ], "marks": [ 72, 88, 63 ], "__v": 0 }
Что такое "__v: 0"
?
Сохранение пользователя не выполняется вообще, это следующая ошибка: ValidationError: CastError: Cast to Array failed for value "{ marks: [ 72, 88, 63 ], grades: [ 30, 40, 30 ], _id: someId, className: 'TEST1234' }" at path "classes"
Что именно означает ошибка? Почему это отличает массив от массива? Не должны ли classes: [Class]
быть массивом типа class
?