Estoy escribiendo la siguiente consulta para recuperar los registros en función de 2 condiciones. Ejecutar la consulta me da error:
> db.employee.find({age:{$lt:32}},{salary:{$lt:40000}})Aquí está el mensaje de error:
Error: error: { "ok" : 0, "errmsg" : "Expression $lt takes exactly 2 arguments. 1 were passed in.", "code" : 16020, "codeName" : "Location16020" }Para realizar una consulta de búsqueda basada en dos condiciones, debe hacerlo en el mismo objeto de consulta.
Tenga en cuenta que está haciendo:
find({obj1},{obj2}Pero el segundo parámetro en el método de búsqueda es para proyección ( docs )
Entonces necesitas esta consulta:
db.collection.find({ "age": { "$lt": 32 }, "salary": { "$lt": 40000 } }) Observe cómo solo hay un objeto con dos campos: age y salary .
Algo así como find( { age:{}, salary:{}} ) .
Ejemplo aquí