我有一个应用程序,它生成以下JSON对象/数组,我想在我的数据库用户下保存。
[ [ { _id: '5990e6d4fce2e705f8d74923',
fname: 'test',
lname: 'testerson1',
username: 'email1@gmail.com',
__v: 0,
userid: '5990e6b9fce2e705f8d74922' },
{ _id: '5990e6e6fce2e705f8d74924',
fname: 'test',
lname: 'testerson2',
username: 'email2@gmail.com',
__v: 0,
userid: '5990e6b9fce2e705f8d74922' } ],
[ { _id: '5990e6f7fce2e705f8d74925',
fname: 'test',
lname: 'testerson3',
username: 'email3@gmail.com',
__v: 0,
userid: '5990e6b9fce2e705f8d74922' },
{ _id: '5990e707fce2e705f8d74926',
fname: 'test',
lname: 'testerson4',
username: 'email4@gmail.com',
__v: 0,
userid: '5990e6b9fce2e705f8d74922' } ] ]
我不确定如何在我的模型中定义这个,我尝试过的是:
var UserSchema = new mongoose.Schema({
fname: String,
lname: String,
username: String,
password: String,
testers: [
[
{
type: mongoose.Schema.Types.ObjectId,
ref: "Tester"
}
]
]
});
使用这种方法,我总是得到MongooseError: Cast to ObjectId failed for value "[ { _id: '5990e6d4fce2e705f8d74923'
错误消息......我想的是因为我试图保存的数组没有ObjectId。
我也尝试从模式中删除类型和ref并只留下数组,这可行...我的数据JSON对象/数组保存得很好,但是因为我还在学习Mongo / Mongoose,我想知道如何正确定义。
谢谢!
router.post("/matchtesters", middleware.isLoggedIn, function(req, res) {
User.findById(req.user._id, function(err, user){
if (err) {
console.log(err);
} else {
Tester.find({ "userid": req.user._id }, function(err, beans) {
if (err) {
console.log(err);
} else {
console.log("TEST2: ", req.body);
console.log("TEST3: " + JSON.stringify(req.body));
user.testers.push(req.body);
user.save();
}
});
}
});
});