【问题标题】:Updating documents in MongoDb collection without an exact full match of the query filters在没有完全匹配查询过滤器的情况下更新 MongoDb 集合中的文档
【发布时间】:2021-03-20 09:31:09
【问题描述】:

我正在尝试更新集合中的文档,根据 mongodb 语法,对于某些更新功能,我这样做:

Collection.updateMany(
    {
        filter1: 'filter1-val',
        filter2: 'filter2-val',
        filter3: 'filter3-val'
                    
    },
    { $set: { filed: 'value' } }
)

mongodb 对匹配查询的文档执行给定的更新操作。但是,它只更新与查询中的每个过滤器匹配的文档。我的问题,我想知道是否有一种方法可以对文档执行更新,只要它们匹配查询中的至少一个过滤器,而不是每个过滤器?所以基本上,这是一种轻松匹配的形式,因此只要文档满足其中一个过滤器,就应该更新它。

提前致谢;非常感谢任何帮助。

【问题讨论】:

    标签: node.js mongodb mongoose mongodb-query mern


    【解决方案1】:

    您可以在搜索条件中使用$expr$or

    这是一个mongo playground 供您参考。

    【讨论】:

    • 这正是我想要的。非常有帮助,包括沙箱;现在我可以快速实现了。
    【解决方案2】:

    您可以使用$or 运算符。

    Collection.updateMany(
      {
        $or: [
          { filter1: 'filter1-val' },
          { filter2: 'filter2-val' },
          { filter3: 'filter3-val' }
        ]
      },
      { $set: { filed: 'value' } }
    );
    

    【讨论】:

      猜你喜欢
      • 2018-10-20
      • 2020-10-18
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 2015-04-23
      • 2021-11-12
      • 2020-07-19
      相关资源
      最近更新 更多