从特定文档中删除子文档失败,Mongoose,MongoDB
我正在尝试从我的应用程序中的特定文档中删除子文档,但未收到预期结果。数据以以下格式存储:从特定文档中删除子文档失败,Mongoose,MongoDB,mongodb,mongoose,Mongodb,Mongoose,我正在尝试从我的应用程序中的特定文档中删除子文档,但未收到预期结果。数据以以下格式存储: {"_id": "59fc7eccf0579ad8882b54bb", "__v": 0, "name": "manchester", "products": [ { "_id": "59fc7eccf0579ad8882b54bf", "__v": 0, "urn": "test01", "cate
{"_id": "59fc7eccf0579ad8882b54bb",
"__v": 0,
"name": "manchester",
"products": [
{
"_id": "59fc7eccf0579ad8882b54bf",
"__v": 0,
"urn": "test01",
"category": "cat1",
},
{
"_id": "59fc7eccf0579ad8882b54c0",
"__v": 0,
"urn": "test02",
"category": "cat1",
},
{
"_id": "59fc7eccf0579ad8882b54c1",
"__v": 0,
"urn": "test03",
"category": "cat2",
},
{
"_id": "59fc7eccf0579ad8882b54c2",
"__v": 0,
"urn": "test04",
"category": "cat2",
}
]
},
{
"_id": "59fc7eccf0579ad8882b54bc",
"__v": 0,
"name": "leeds",
"products": [
{
"_id": "59fc7eccf0579ad8882b54bf",
"__v": 0,
"urn": "test01",
"category": "cat1",
},
{
"_id": "59fc7eccf0579ad8882b54c0",
"__v": 0,
"urn": "test02",
"category": "cat1",
},
{
"_id": "59fc7eccf0579ad8882b54c1",
"__v": 0,
"urn": "test03",
"category": "cat2",
},
{
"_id": "59fc7eccf0579ad8882b54c2",
"__v": 0,
"urn": "test04",
"category": "cat2",
}
]
}
有多个区域,每个区域存储相同的产品。我希望能够从每个地区删除一个产品,但将其保留在其他地区
我尝试了以下方法:
const item = await Region.find({ "_id": req.params.reg }).populate('products', null, {
_id: { $in: req.params.id }}).exec();
await item[0].products[0].remove()
await item[0].products[0].save();
res.json(item);
{ n: 1, nModified: 0, ok: 1 }
但是,这会将产品从所有区域中删除。我还尝试使用以下格式的$pull-on-Update(),但无法使其正常工作
await Region.update({ "_id": req.params.reg }, { "$pull": { "products": {"_id": req.params.id } } });
res.redirect("/regions");
在这里,重定向工作正常,没有错误。如果I console.log从中输出,我将收到以下信息:
const item = await Region.find({ "_id": req.params.reg }).populate('products', null, {
_id: { $in: req.params.id }}).exec();
await item[0].products[0].remove()
await item[0].products[0].save();
res.json(item);
{ n: 1, nModified: 0, ok: 1 }
任何建议或建议都很好
谢谢 我已经设法解决了这个问题,添加了我的答案作为参考,以防其他人陷入困境 update({u id:req.params.reg},{$pull:{“产品”:req.params.id}} 是我在这里工作的代码 希望这对其他人发现类似问题有所帮助