MongoDB 查
大家请看这是mongodb的一个collection,下面我们用它来完成一些查找的操作
1.find语句查找 db.集合名.find( [ condition] )
(1) 遍历整个集合:db.集合名.find()
(2) 查找满足条件的所有文档:db.集合名.find({条件}),条件以键值对的形式写在花括号内,下面查找年龄为30的人
(3)查找,设置显示的内容
查找年龄为32的人的姓名 ( id默认是显示的 )
查找年龄为32的人的姓名,不显示id
2. 查找满足条件的一个文档findOne db.集合名.findOne( [ condition] )
查找表的一个文档:db.集合名.findOne() ; 若findOne内不填入任何条件,则查找结果是集合的第一个文档
若传入条件,无论满足条件的文档有多少个都只显示一个,而且显示的是第一个检索到的文档
3.mongodb的比较运算符的查找
mongodb常见的比较运算符: 大于 >( gt ) 小于 <( lt ) 大于等于 >=( gte ) 小于等于 <=(lte)
(1) 查找年龄大于32的人
(2) 查找年龄小于32的人
(3) 查找年龄大于等于32的人
(4) 查找年龄小于等于32的人
至于年龄等于32的人已经在前面查找过。
(5)下面来看两个复杂一点的查询
查询年龄大于32且姓名为liyunlong的人
查询年龄大于32或姓名为fanbingbing的人
4. mongodb的in和nin
查找年龄在列表[ 27, 56, 18]里的人
查找年龄不在列表[ 27, 56, 18]里的人
5. 正则
"^XX" 以XX开头的字符串 "XX$" 以XX结尾的字符串
(1) 查找姓名以li开头的人
(2) 查找姓名以ang结尾的人
6. mongodb 与js
由于mongodb兼容js下面我们来看看如何用js的函数来进行查询
(1) 查找年龄大于32的人
查询年龄大于32小于50的人
js的正则这样表示:/ 正则表达式/
(2) 下面我们用js的正则表达式来进行查询
查找姓名以li开头的人
查找姓名以ang结尾的人
7.mongodb的排序 分页和统计
(1) mongodb用sort( [ condition] )排序,sort( )不填入任何条件,默认是以id升序排列
a:下面我们以年龄升序排序
sort( { age : 1} ) 是指以age排序,1指的是升序排列,-1是降序排列。
b:我们在看一个降序排列
首先以age进行降序排列,当年龄相同时以name进行升序排列。由于fanbingbing的首字母f的ASCII值大于lixiaolong的首字母l的ASCII值,所以fanbingbing排在lixiaolong前面。
(2) 分页 limit
a: limit( x ) 只显示x条
db.c_select.find()一共查到五个文档,而此时只显示了2个文档
b: skip( y ) 跳过y条显示
db.c_select.find().skip(2).limit(2) 一共查到五个文档,skip( 2)让查到的文档从第3个开始显示,前两条跳过,而limit限制显示的数目,让文档只显示2个
(3 ) 统计 count ( )
db . 集合名 . count ( [condition] )
a:统计集合的文档数目
b:统计age大于30 的人数
或
( 4 ) 去除重复 distinct