我被这个问题困扰了,我想你可以以某种方式帮助我,它从前端给我提供了一个数字列表,其中包含要删除的对象的 id,例如:
{
"user":"TEST",
"conditionsToDelete":[1586513509594,1586513519698]
}
我在 mongo 上的文档如下所示:
如您所见,文档中有一个名为 id 的属性 > conditionConfig > id
所以我从前面得到的这个列表有这个 id,我必须使用它来过滤和删除匹配的对象。
我该怎么做?我一直在尝试类似以下的方法:
let resBusqueda = await this.conditionModel.find({ user: conditionsPack.user });
resBusqueda.forEach(condicionPack => {
let condicionesFiltradas = [];
condicionPack.conditionConfig.forEach(condicion => {
let idAnalizadoActualSubcondicion = conditionsPack.conditionsToDelete.indexOf(condicion.id);
if (idAnalizadoActualSubcondicion == -1) {
condicionesFiltradas.push(condicion);
}
});
condicionPack.conditionConfig = condicionesFiltradas;
condicionesFiltradas = [];
});
我收到文档并对其进行了一些更改,但如何保存它们?
提前
最佳答案
here中有一个很好的例子。但这对你来说可能已经足够了:
db.YourModel.update(
{ }, // conditions that specify your user instance
{ $pull: { firstArray: { $in: arrayOfObjectIds }, secondArray: "single ID" } },
{ multi: true }
)
我为您带来了单个元素删除的示例,以及针对您的情况的要删除的元素数组。
关于javascript - 如何根据 Mongoose 中的对象ID列表删除数组项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61143703/