MongoDB自学笔记10---4.2查询文档(二)

2014-11-24 17:08:24 · 作者: · 浏览: 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:{$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在执行的