说到查询,我们一般就想起了关系型数据库的查询了,比如:order by(排序)、limit(分页)、范围查询(大于某个值,小于某个值..,in查询,on查询,like查询等待很多),同样mongodb同样也支持这些操作,只是语法不同,比如排序:mongodb里面使用了skip(field:1/-1)方法,下面就来一一介绍一下:
一、mongodb查询文档
1.查询文档之find() : 不加条件是查询集合全部的数据
语法:db.collectionName.find({条件},{field:true/false})
1.1查询所有数据
显示指定字段(与上图对比,find()第二个参数为指定查询的字段,格式[字段名:true/false]true为显示,false为不显示):
1.2 查询数据总数 count()
语法:db.collectionName.find({条件}).count()
2. 查询一个文档 findOne() :默认是查询符合条件的第一条文档
语法:db.collectionName.findOne({条件},{field:true/false})
3.pretty()方法:格式化显示查询的文档
二、条件操作符("$and"、"$nor"、"$not"、"$or"、"$exists"、"$mod"、"$regex"、"$where"、"$slice"、"$elemMatch","null查询"、"$all"、"$size"、"$in"、"$nin")
1.下面是一部分条件操作符的列表,含义、语法、以及和关系型数据库的对比
等于 | {<key>:<value> } |
db.col.find({"by":"zgw"}) |
where by = ‘zgw‘ |
小于($lt) | {<key>:{$lt:<value>}} |
db.col.find({"likes":{$lt:50}}) |
where likes < 50 |
小于或等于($lte) | {<key>:{$lte:<value>}} |
db.col.find({"likes":{$lte:50}}) |
where likes <= 50 |
大于($gt) | {<key>:{$gt:<value>}} |
db.col.find({"likes":{$gt:50}}) |
where likes > 50 |
大于或等于($gte) | {<key>:{$gte:<value>}} |
db.col.find({"likes":{$gte:50}}) |
where likes >= 50 |
不等于($ne) | {<key>:{$ne:<value>}} |
db.col.find({"likes":{$ne:50}}) |
where likes != 50 |
语法:db.collectionName.find({field:{Operators1:value1,Operators2:value2}}) --[Operators:就是上面那些操作符()]
php格式:array(field=>array(‘$lte‘=>value)) 或者 array(field=>array(‘$gte‘=>value1,‘$lte‘=>value2))
下面是不等于操作符的查询:
2.操作符:"$and"、"$nor"、"$not"、"$or"、"$exists"、"$mod"、"$regex"、"$where"、"$slice"、"$elemMatch","null查询"、"$all"、"$size"、"$in"、"$nin"
2.1 $and :
未完待续:http://www.cnblogs.com/egger/p/3135847.html
http://www.cnblogs.com/zhaoyang/archive/2012/01/10/2317664.html