MongoDB拥有强大的数据查询功能,这主要靠其提供的查询操作符
(Query Operators)来实现,它包括比较查询操作符、逻辑查询操作符、元
素查询操作符、数据查询操作符等。
查询操作符的使用十分灵活,使用它们能够构造出复杂的查询条件,可
以满足大部分的数据查询功能。
比较查询操作符
比较查询操作符(Comparison Query Operators),用于大小值比较以及包
含与不包含关系的判断。
比较操作符 | 作用 | 参数 |
$eq/$ne | 等于/不等于 | {<field>:{$eq/$ne:<value>}} |
$gt/$gte | 大于/大于等于 | {<field>:{$gt/$gte:<value>}} |
$lt/$lte | 小于/小于等于 | {<field>:{$lt/$lte:<value>}} |
$in/$nin | 包含/不包含 |
{field:{$in/$nin:[<valuel>,<value2>,…
<valueN>]}}
|
比较查询操作符实例
var db = connect("localhost:27017/test");
db.col.drop();
var bulk = db.col.initializeUnorderedBulkOp();
// 测试数据
var doc1 = {name : "joe", age : 20}
bulk.insert(doc1);
var doc2 = {name : "joe", age : 31}
bulk.insert(doc2);
var doc3 = {name : "jack", age : 21}
bulk.insert(doc3);
var doc4 = {name : "John", age : null}
bulk.insert(doc4);
//执行插入操作
bulk.execute();
print("===比较查询操作符$eq的使用===");
var cursor = db.col.find({age:{$eq:20}});//相当于 {age:20}
printjson(cursor.toArray());
print("===比较查询操作符$lt的使用===");
cursor = db.col.find({age:{$lt:21}});
printjson(cursor.toArray());
print("===比较查询操作符$gt的使用===");
cursor = db.col.find({age:{$gt:21}});
printjson(cursor.toArray());
print("===比较查询操作符$in的使用===");
cursor = db.col.find({age:{$in:[21,31]}});
printjson(cursor.toArray());
运行结果:
C:\>mongo --quiet find_eq.js
===比较查询操作符$eq的使用===
[
{
"_id" : ObjectId("56e5545d01a28a301d2578c4"),
"name" : "joe",
"age" : 20
}
]
===比较查询操作符$lt的使用===
[
{
"_id" : ObjectId("56e5545d01a28a301d2578c4"),
"name" : "joe",
"age" : 20
}
]
===比较查询操作符$gt的使用===
[
{
"_id" : ObjectId("56e5545d01a28a301d2578c5"),
"name" : "joe",
"age" : 31
}
]
===比较查询操作符$in的使用===
[
{
"_id" : ObjectId("56e5545d01a28a301d2578c5"),
"name" : "joe",
"age" : 31
},
{
"_id" : ObjectId("56e5545d01a28a301d2578c6"),
"name" : "jack",
"age" : 21
}
]