题目
查询成绩在60-80之间的学生信息,正确的语句是?A. db.students.find(("score":{gte:60,lte:80)})B. students.find(("score":{gte:80),("score":{lte:60)}})C. db.students.find(("score":{gte:60),("score":{te:80)}})D. db.students.find(("score":{gt:80),("score":{lt:60)}})
查询成绩在60-80之间的学生信息,正确的语句是?
A. db.students.find({"score":{$gte:60,$lte:80}})
B. students.find({"score":{$gte:80},{"score":{$lte:60}}})
C. db.students.find({"score":{$gte:60},{"score":{$te:80}}})
D. db.students.find({"score":{$gt:80},{"score":{$lt:60}}})
题目解答
答案
A. db.students.find({"score":{$gte:60,$lte:80}})
解析
本题考查MongoDB查询操作符的使用,核心在于理解如何正确组合$gte`(大于等于)和`$lte(小于等于)来限定数值范围。关键点在于:
- 复合条件的写法:需将两个操作符放在同一个字段的条件对象中,表示同时满足两个条件。
- 排除干扰项:注意选项中可能存在的逻辑矛盾(如同时要求
score大于80且小于60)或语法错误(如操作符拼写错误)。
选项分析
选项A
db.students.find({"score":{$gte:60,$lte:80}})
- 正确性:将
$gte:60`和`$lte:80放在同一个字段条件中,表示score需同时满足≥60且≤80,符合题意。 - 结论:正确。
选项B
students.find({"score":{$gte:80},{"score":{$lte:60}}})
- 问题1:要求
score同时≥80和≤60,逻辑矛盾,结果为空。 - 问题2:语法错误,复合条件应使用
$and操作符或合并到同一字段中。 - 结论:错误。
选项C
db.students.find({"score":{$gte:60},{"score":{$te:80}}})
- 问题1:
$te`不是有效操作符,正确应为`$lte。 - 问题2:即使修正操作符,分开写两个条件会导致逻辑错误(需合并到同一字段)。
- 结论:错误。
选项D
db.students.find({"score":{$gt:80},{"score":{$lt:60}}})
- 问题1:要求
score同时>80和<60,逻辑矛盾,结果为空。 - 结论:错误。