繁体   English   中英

如何根据 mongoose 中的 object id 列表删除数组项?

[英]How to delete items of array based on object id list in mongoose?

我坚持这一点,我想你可以以某种方式帮助我,从前端它给我一个数字列表,其中包含要删除的 object 的 ID,例如:

{
  "user":"TEST",
  "conditionsToDelete":[1586513509594,1586513519698]
}

我在 mongo 上的文件看起来像:

在此处输入图像描述

如您所见,文档 > conditionConfig > id 上有一个名为 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 = [];
    });

我收到文档并对其进行了一些更改,但如何保存它们?

提前TY

这里有一个很好的例子。 但这对您来说可能已经足够了:

db.YourModel.update(
    { }, // conditions that specify your user instance
    { $pull: { firstArray: { $in: arrayOfObjectIds }, secondArray: "single ID" } },
    { multi: true }
)

我为您提供了删除单个元素的示例,并为您提供了要删除的元素数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM