MongoDB逻辑查询操作符
来源:互联网 发布:tenga淘宝正品 编辑:程序博客网 时间:2024/06/10 12:10
逻辑查询操作符
逻辑查询操作符(Logical Query Operators),可连接多个查询条件,用于逻辑与、或、非以及取反操作。
逻辑操作符作用参数$and与{$and:[{<expressionl>},{<expression2>},…,{<expressionN>}]}$or或{$or:[{<expressionl>},{<expression2>},…,{<expressionN>}]}$nor非{$nor:[{<expressionl>},{<expression2>},…,{<expressionN>}]}$not取反{field:{$not:{<operator-expression>}}}
逻辑查询操作符实例
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("========find - $and 逻辑操作符的使用=======")
/*
$and && 且逻辑操作符 选择满足所有表达式的文档
{ $and: [ { <expression1> }, { <expression2> } , ... , { <expressionN> } ] }
注意:1. and 操作符使用的是”短路运算“,即如果第一个表达式返回 false的话,不会再计算后面的表达式
2. and 操作符有隐式和显式两种 隐式的可以使用 逗号 连接多个表达式
3. 一般情况下隐式和显式两种方式是等价的,但有的时候只能显式使用$and
*/
var cursor = db.col.find(
{
//$and: [ { age:{$gt:21}}, { age:{ $lte:31} } ] //age>21 && age<=31
//age:{$gte:20,$lte:31}
$and: [
{ $or:[ { age:19 },{ age:21 } ] }, //age=19或age=21
{ $or:[ { name:"joe" },{ name:"jack" } ] }
]
}
);
printjson(cursor.toArray());
print("========find - $nor 逻辑操作符的使用=======")
/*
$nor 用于查询集合中不满足参数数组中列出的所有条件的文档
{ $nor: [ { <expression1> }, { <expression2> }, ... { <expressionN> } ] }
*/
var cursor = db.col.find(
{
$nor:[
{ name:"joe" },
{ name:"jack" }
]
});
printjson(cursor.toArray());
print("========find - $not 操作符的使用=======")
/*
$not 对表达式取反
{ field: { $not: { <operator-expression> } } }
*/
var cursor = db.col.find(
{
age:{ $not: { $gt:22,$lte:30 } } //age<=22 或 age>30 或 null
});
printjson(cursor.toArray());
运行结果
C:\>mongo --quiet find_logic.js
========find - $and 逻辑操作符的使用=======
[
{
"_id" : ObjectId("56e569373f52f0472ccbcfd1"),
"name" : "jack",
"age" : 21
}
]
========find - $nor 逻辑操作符的使用=======
[
{
"_id" : ObjectId("56e569373f52f0472ccbcfd2"),
"name" : "John",
"age" : null
}
]
========find - $not/$gt/$lte 操作符的使用=======
[
{
"_id" : ObjectId("56e569373f52f0472ccbcfcf"),
"name" : "joe",
"age" : 20
},
{
"_id" : ObjectId("56e569373f52f0472ccbcfd0"),
"name" : "joe",
"age" : 31
},
{
"_id" : ObjectId("56e569373f52f0472ccbcfd1"),
"name" : "jack",
"age" : 21
},
{
"_id" : ObjectId("56e569373f52f0472ccbcfd2"),
"name" : "John",
"age" : null
}
]
0 0
- MongoDB逻辑查询操作符
- MongoDB 逻辑与操作
- mongodb的查询操作符
- mongodb的查询操作符
- MongoDB比较查询操作符
- MongoDB元素查询操作符
- MongoDB逻辑操作符$or, $and,$not,$nor
- MongoDB 高级查询条件操作符
- Mongodb 中使用操作符查询
- MongoDB查询操作符(Query Operators)
- mongoDB 查询操作
- MongoDB学习---查询操作
- MongoDB查询操作
- MongoDB 查询操作
- mongoDB 查询操作
- mongodb简单查询操作
- MongoDB查询操作
- MongoDB简单查询操作符(非聚合操作)
- LogUtil
- 程序员高效率工作必备工具
- 10G DG备库脱离环境下的重建(主库不停机)
- 第九周-实践
- 在现有窗口中打开新窗口,即target_blank的问题
- MongoDB逻辑查询操作符
- drawRect方法的调用
- 解除ABAP程序编辑锁的方法
- c# 解析和生成 DAE文件
- 设计模式之建造者模式
- Android的Widget桌面应用学习
- Android中队列的实现
- 关于android-async-http 1.4.9的问题
- Java的23种设计模式详解整理之创建型模式