这是课程模式,我想推送内容对象,但是我找不到什么好方法。请帮助。
import mongoose from "mongoose";
export const Schema = new mongoose.Schema({
course_en: { type: String },
course: { type: String },
module: [
{
_id: {
type: String
},
module_en: String,
module: String,
content: [
{
_id: { type: String }
content_en: String,
content: String,
}
],
}
],
});
const Course = mongoose.model("Course", Schema);
export default Course;
这是我尝试过的代码,但是不起作用,只能添加模块对象
db.update(
{ _id: _id, "module._id": module_id },
{
$push: { content: data }
}
)
.then((result: any) => {
console.log(`Content Posted ${result}`);
response.send({ "status": "success" });
})
.catch((error: any) => {
console.log(`Error ${error}`);
response.send({ "status": "fail" });
});
答案 0 :(得分:0)
db.collection.update(
{ _id: _id, "module._id": module_id },
{ "$push":
{"module.$.content":
{
"_id":"123",
"content_en": "hello",
"content": "hey"
}
}
})
答案 1 :(得分:0)
假设data
是要添加到content
数组的对象,则可以尝试如下操作:
db.update(
{ _id: _id, "module._id": module_id },
{
$push: { "module.$.content" : data }
}
)