如何在查询中引用文档的字段值?

how to reference document's field value in query?

文件看起来像这样:

[{
  quantity, 15,
  limit: 15
},
{
  quantity: 4,
  limit: 5
},
{
  quantity: 3,
  limit: 3,
}]

我需要找到 quantity 小于 limit 的文档。所有文件都有不同的数量和限制。

如何在不知道文档的 limit 的情况下找到 quantity 小于其 limit 的文档?

使用$expr访问字段值和聚合运算符的使用。

db.collection.find({
  $expr: {
    $lt: [
      "$quantity",
      "$limit"
    ]
  }
})

Sample Mongo Playground (Query)


对于聚合查询:

db.collection.aggregate([
  {
    $match: {
      $expr: {
        $lt: [
          "$quantity",
          "$limit"
        ]
      }
    }
  }
])

Sample Mongo Playground (Aggregation Query)