首页 > 解决方案 > Mongo in node.js 在 $in 或类似的东西中添加 $gte/$lt

问题描述

我使用 MongoDB Node.js 驱动程序。我的查询看起来像这样:

   var query = {
        $and: [{
            "custom_date": {
                "$gte": minDateValue,
                "$lt": maxDateValue
            }
        }, {"doc_name": {"$in": file_type}}, {"sample_type": {"$in": sample_type}}, {"mission": {"$in": mission}}, {"snow_thickness": {"$in": snow_thickness}},{
            "depth_m": {
                "$gte": minDepthOut,
                "$lt": maxDepthOut
                // Or equal to "NA"
            }
        }]
    };

一切正常,但我想在字段 depth_m 中添加 $in 或 $or,因此查询的这一部分将是 "$gte": minDepthOut,"$lt": maxDepthOut 或等于 "NA" 例如.

我的意思是 depth_m 必须在指定范围内或等于“NA”

谢谢你的帮助

标签: javascriptnode.jsmongodb

解决方案


您可以使用$or查询运算符

{
  "$and": [
    { "custom_date": { "$gte": minDateValue, "$lt": maxDateValue }},
    { "doc_name": { "$in": file_type } },
    { "sample_type": { "$in": sample_type } },
    { "mission": { "$in": mission } },
    { "snow_thickness": { "$in": snow_thickness } },
    { "$or": [
      { "depth_m": {
        "$gte": minDepthOut,
        "$lt": maxDepthOut
      }},
      { "depth_m": "NA" }
    }]
  ]
}

推荐阅读