我正在尝试删除我在非常深的嵌套模式中拥有的子文档...
我正在使用findByIdAndUpdate方法,但没有删除子文档。
我的nodejs中有这个
///我假装删除数组“ items”中的子文档
storeCtrl.deleteAlmacen = (req, res) => {
storeModel.findByIdAndDelete(req.params.id).then(() => {
res.json('deleted')
}).catch((err) => {
res.json(err)
})
}
这是我的模式
//我没有复制和粘贴,所以可能有一些语法错误
{
"_id" : ObjectId("5c6cd20f13f0940e0cc214c5"),
"store" : [
{
"_id" : ObjectId("5c6cd20f13f0940e0cc214c6"),
"office" : [
{
"_id" : ObjectId("5c6cd21f13f0940e0cc214c8"),
"items" : [
{
"_id" : ObjectId("5c6cd22e13f0940e0cc214cb"),
"pen" : "3",
"paperId" : "a4"
}
],
"employees" : [ ],
"work" : 1
}
]
}
]
}
我是否必须使用其他方法代替findByIdAndDelete?
答案 0 :(得分:1)
看看这个解决方案:Update nested subdocument in Mongoose
长话短说,您应该使用单独的模型,所有模型都相互引用。改变现在的生活会很痛苦,但实际上,它将变得更加清洁。
您应该有一个引用Store
的{{1}}模型和一个引用Office
模型的Office
模型