SQL MongoDB 中的等效查询

SQL equivalent queries in MongoDB

我正在将 SQL 查询转换为 MongoDB。我有以下 SQL 语句检查输入并相应地执行查询。

(score_min = -1 OR Scores BETWEEN score_min AND score_max)

scores是一个字段名,我要过滤
仍然无法找出在 MongoDB 聚合管道中执行此查询的最佳方法。有什么建议吗?

您可以通过 $expr 在一个简单的 find 中实现该行为。不是必须使用聚合管道。

db.collection.find({
  $expr: {
    $or: [
      {
        // $eq: [<score_min>, -1]
        $eq: [
          <score_min>,
          -1
        ]
      },
      {
        $and: [
          {
            // $gte: ["$Scores", <score_min>]
            $gte: [
              "$Scores",
              <score_min>
            ]
          },
          {
            $lte: [
              // $gte: ["$Scores", <score_max>]
              "$Scores",
              <score_max>
            ]
          }
        ]
      }
    ]
  }
})

这里是Mongo playground供大家参考。