我可以将项目添加到子文档数组中,但我无法将项目添加到子子文档数组中。
这是我的Mongoose架构:
var botSchema = {
"name" : String,
"type" : String,
"keyword" : String,
"active" : Boolean,
"cron" : String
};
var apiSchema = {
"name" : String,
"key" : String,
"secret" : String,
bots:[botSchema]
};
var userSchema = {
"email" : String,
"password" : String,
apis : [apiSchema]
};
module.exports.User = mongoose.model('user',userSchema);
如何将bot项目添加到现有API项目?
向用户添加API时没有问题。我这样做:
User.findByIdAndUpdate(
userId, {
$push: {
apis: api
}
}, {
safe: true,
upsert: true
},
function(err, model) {
console.log(err);
console.log(model);
}
);
但我正在尝试将僵尸程序添加到现有API中。我试过这个:
User.findOneAndUpdate({
"_id": userId,
"apis._id": apiId
}, {
$push: {
"apis.$.bots": bot
}
},
function(err, doc) {
console.error("Error:", err);
console.log("Doc:", doc);
}
);
但是我显示了这个错误:
CastError:对于值“[object Object]”
,强制转换为未定义失败