Mongodb查询给出错误:表达式$gt正好需要2个参数.我被送了进去



我正在编写以下查询,以根据2个条件检索记录。执行查询给我错误:

> db.employee.find({age:{$lt:32}},{salary:{$lt:40000}})

下面是错误信息:

Error: error: {
"ok" : 0,
"errmsg" : "Expression $lt takes exactly 2 arguments. 1 were passed in.",
"code" : 16020,
"codeName" : "Location16020"
}

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

注意你在做:

find({obj1},{obj2}

但是find方法的第二个参数是用于投影(docs)

所以你需要这个查询:

db.collection.find({
"age": {
"$lt": 32
},
"salary": {
"$lt": 40000
}
})

注意只有一个对象有两个字段:agesalary
类似find( { age:{}, salary:{}} )

例子

看来你想实现AND条件。您必须将所有条件写在单宾语子句{}中,并用逗号分隔条件。如:

db.employee.find({ age:{$lt:32}, salary:{$lt:40000}});

最新更新