【问题标题】:How to delete all documents except one如何删除除一个以外的所有文件
【发布时间】:2020-04-25 04:32:34
【问题描述】:

我使用 expressmongodbmongoose 堆栈,我真的不知道如何查询数据库

如何删除集合中的所有文档,但按条件除外?

让我说明一下我的意思

我有一个包含文档的集合。

[
  {
    id: 1,
    subDocument: {
      id: 'a'
    }
  },
  {
    id: 2,
    subDocument: {
      id: 'b'
    }
  },
  {
    id: 3,
    subDocument: {
      id: 'c'
    }
  },
]

这些文档中的每一个都有自己的单个子文档。我想删除所有不符合子文档条件的文档(第一级)。

如果subDocument.id 不等于'b',则删除文档。

我希望这样的结果

[
  {
    id: 2,
    subDocument: {
      id: 'b'
    }
  },
]

附: 我在猫鼬文档中找不到任何好的例子。您能否提供一个示例或分享一个资源,我可以在其中找到此类信息

非常感谢

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    在 Mongoose 中,您可以使用 Model.remove 并将过滤器作为参数传递:

    Model.remove({ 'subdocument.id': { $ne: 'b' } })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 2015-11-05
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多