【问题标题】:MongoDB query with constraint on sum of attributes具有属性总和约束的 MongoDB 查询
【发布时间】:2020-11-02 04:15:07
【问题描述】:

我想要一个 MongoDB 查询,它返回某些属性的总和满足约束条件的记录,例如给定以下文档:

[
  { _id: 1, q1a: 20, q1b: 50, q1c: 30},
  { _id: 2, q1a: 50, q1b: 30, q1c: 20},
  { _id: 3, q1a: 0, q1b: 0, q1c: 0},
]

我想运行一个查询,返回所有且仅返回 (q1a + q1b + q1c) == 100 的文档,在此示例中为上面的记录 1 和 2。

有没有办法在 MongoDB 中表达这一点,而无需使用 $where 并将总和编写为 Javascript 函数?

【问题讨论】:

    标签: database mongodb mongodb-query


    【解决方案1】:

    您可以将$expr$sum 一起使用:

    db.collection.find({ $expr: { $eq: [ 100, { $sum: [ "$q1a", "$q1b", "$q1c" ] } ] } })
    

    Mongo Playground

    【讨论】:

      猜你喜欢
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 2021-09-15
      • 1970-01-01
      相关资源
      最近更新 更多