Mongodb 查询给出错误:表达式 $gt 恰好需要 2 个参数。已传入 1 个

Deb*_*ash 3 mongodb mongodb-query

我正在编写以下查询来根据两个条件检索记录。执行查询时出现错误:

> db.employee.find({age:{$lt:32}},{salary:{$lt:40000}})
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Error: error: {
        "ok" : 0,
        "errmsg" : "Expression $lt takes exactly 2 arguments. 1 were passed in.",
        "code" : 16020,
        "codeName" : "Location16020"
}
Run Code Online (Sandbox Code Playgroud)

J.F*_*.F. 6

要基于两个条件进行查找查询,您需要在同一个查询对象中执行。

请注意,您正在做:

find({obj1},{obj2}
Run Code Online (Sandbox Code Playgroud)

但 find 方法的第二个参数用于投影(文档

所以你需要这个查询:

db.collection.find({
  "age": {
    "$lt": 32
  },
  "salary": {
    "$lt": 40000
  }
})
Run Code Online (Sandbox Code Playgroud)

请注意,只有一个对象具有两个字段:agesalary
就像是find( { age:{}, salary:{}} )

示例在这里