【发布时间】:2020-01-09 19:58:01
【问题描述】:
我正在尝试使用 mongoose 为我的 mongodb 数据库创建模型。这就是我想要做的:
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: 'aaa@some.com', 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 "{ 标记: [ 72, 88, 63 ], 等级:[ 30, 40, 30 ], _id: someId, className: 'TEST1234' }" 在路径 "classes" `
这个错误到底是什么意思?为什么要将任何东西投射到数组中? classes: [Class] 不应该是 class 类型的数组吗?
【问题讨论】:
标签: node.js mongodb mongoose nosql