1. 程式人生 > >MongoDB邏輯查詢操作符

MongoDB邏輯查詢操作符

邏輯查詢操作符
邏輯查詢操作符(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=19age=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}]