{ "_id" : 3, "name" : "user3","age" : 3 }
{ "_id" : 4, "name" : "user4","age" : 4 }
{ "_id" : 5, "name" : "user5","age" : 5 }
{ "_id" : 6, "name" : "user6","age" : 6 }
{ "_id" : 7, "name" : "user7","age" : 7 }
{ "_id" : 8, "name" : "user8","age" : 8 }
{ "_id" : 9, "name" : "user9","age" : 9 }
{ "_id" : 10, "name" : "user10","age" : 10 }
> db.user.find({age:{$lt:5}})
{ "_id" : 1, "name" : "user1","age" : 1 }
{ "_id" : 2, "name" : "user2","age" : 2 }
{ "_id" : 3, "name" : "user3","age" : 3 }
{ "_id" : 4, "name" : "user4","age" : 4 }
$lte
语法:{field: {$lte:value} }
查找字段的值小于等于给定值的文档。
> db.user.find()
{ "_id" : 1, "name" : "user1","age" : 1 }
{ "_id" : 2, "name" : "user2","age" : 2 }
{ "_id" : 3, "name" : "user3","age" : 3 }
{ "_id" : 4, "name" : "user4","age" : 4 }
{ "_id" : 5, "name" : "user5","age" : 5 }
{ "_id" : 6, "name" : "user6","age" : 6 }
{ "_id" : 7, "name" : "user7","age" : 7 }
{ "_id" : 8, "name" : "user8","age" : 8 }
{ "_id" : 9, "name" : "user9","age" : 9 }
{ "_id" : 10, "name" : "user10","age" : 10 }
> db.user.find({age:{$lte:5}})
{ "_id" : 1, "name" : "user1","age" : 1 }
{ "_id" : 2, "name" : "user2","age" : 2 }
{ "_id" : 3, "name" : "user3","age" : 3 }
{ "_id" : 4, "name" : "user4","age" : 4 }
{ "_id" : 5, "name" : "user5","age" : 5 }
$in
语法:{ field: {$in: [
查找字段的值为数组,并且包含一个或多个给定的值的文档。
> db.c2.find()
{ "_id" : ObjectId("519d4db8f90a444101408c2c"),"ary" : [ 1, 2 ] }
{ "_id" : ObjectId("519d4dbcf90a444101408c2d"),"ary" : [ 1, 3 ] }
{ "_id" : ObjectId("519d4dc4f90a444101408c2e"),"ary" : [ 4, 5, 6 ] }
> db.c2.find({ary:{$in:[1,2]}})
{ "_id" : ObjectId("519d4db8f90a444101408c2c"),"ary" : [ 1, 2 ] }
{ "_id" : ObjectId("519d4dbcf90a444101408c2d"),"ary" : [ 1, 3 ] }
$nin
语法:{ field: {$nin: [
查找字段的值为数组,并且不包含一个或多个给定的值的文档。
> db.c2.find()
{ "_id" : ObjectId("519d4db8f90a444101408c2c"),"ary" : [ 1, 2 ] }
{ "_id" : ObjectId("519d4dbcf90a444101408c2d"),"ary" : [ 1, 3 ] }
{ "_id" : ObjectId("519d4dc4f90a444101408c2e"),"ary" : [ 4, 5, 6 ] }
> db.c2.find({ary:{$nin:[1,2]}})
{ "_id" : ObjectId("519d4dc4f90a444101408c2e"),"ary" : [ 4, 5, 6 ] }
$ne
语法:{field:{$ne: value} }
查找字段不等于给定的值或者不存在此字段的文档。
> db.user.find()
{ "_id" : 1, "name" : "user1","age" : 1 }
{ "_id" : 2, "name" : "user2","age" : 2 }
{ "_id" : 3, "name" : "user3","age" : 3 }
{ "_id" : 4, "name" : "user4","age" : 4 }
{ "_id" : 5, "name" : "user5","age" : 5 }
{ "_id" : 6, "name" : "user6","age" : 6 }
{ "_id" : 7, "name" : "user7","age" : 7 }
{ "_id" : 8, "name" : "user8","age" : 8 }
{ "_id" : 9, "name" : "user9","age" : 9 }
{ "_id" : 10, "name" : "user10","age" : 10 }
> db.user.find({age:{$ne:1}})
{ "_id" : 2, "name" : "user2","age" : 2 }
{ "_id" : 3, "name" : "user3","age" : 3 }
{ "_id" : 4, "name" : "user4","age" : 4 }
{ "_id" : 5, "name" : "user5","age" : 5 }
{ "_id" : 6, "name" : "user6","age" : 6 }
{ "_id" : 7, "name" : "user7","age" : 7 }
{ "_id" : 8, "name" : "user8","age" : 8 }
{ "_id" : 9, "name" : "user9","age" : 9 }
{ "_id" : 10, "name" : "user10","age" : 10 }
> db.user.find({sex:{$ne:1}}) /*不存在sex字段,将所有文档都查出来*/
{ "_id" : 1, "name" : "user1","age" : 1 }
{ "_id" : 2, "name" : "user2","age" : 2 }
{ "_id" : 3, "name" : "user3","age" : 3 }
{ "_id" : 4, "name" : "user4","age" : 4 }
{ "_id" : 5, "name" : "user5","age" : 5 }
{ "_id" : 6, "name" : "user6","age" : 6 }
{ "_id" : 7, "name" : "user7","age" : 7 }
{ "_id" : 8, "name" : "user8","age" : 8 }
{ "_id" : 9, "name" : "user9","age" : 9 }
{ "_id" : 10, "name" : "user10","age" : 10 }
逻辑选取器
顾名思义这组选择器是跟逻辑有关系的,有$and、$not、$or、$nor。
$and
语法:{ $and: [{
查找满足所有给定条件的文档,这里使用数组存放所有的条件。$and在执行的