MongoDB 查

大家请看这是mongodb的一个collection,下面我们用它来完成一些查找的操作

1.find语句查找                db.集合名.find( [ condition] )

(1) 遍历整个集合:db.集合名.find()

MongoDB 查

(2) 查找满足条件的所有文档:db.集合名.find({条件}),条件以键值对的形式写在花括号内,下面查找年龄为30的人

  MongoDB 查

(3)查找,设置显示的内容 

查找年龄为32的人的姓名 (  id默认是显示的 )

MongoDB 查

查找年龄为32的人的姓名,不显示id

MongoDB 查

2. 查找满足条件的一个文档findOne          db.集合名.findOne( [ condition] ) 

查找表的一个文档:db.集合名.findOne() ; 若findOne内不填入任何条件,则查找结果是集合的第一个文档

MongoDB 查

若传入条件,无论满足条件的文档有多少个都只显示一个,而且显示的是第一个检索到的文档

MongoDB 查

3.mongodb的比较运算符的查找

mongodb常见的比较运算符:   大于 >( gt )        小于 <( lt )          大于等于 >=( gte )           小于等于 <=(lte)

(1) 查找年龄大于32的人

MongoDB 查

(2) 查找年龄小于32的人

MongoDB 查

(3) 查找年龄大于等于32的人

MongoDB 查

(4) 查找年龄小于等于32的人

MongoDB 查

至于年龄等于32的人已经在前面查找过。

(5)下面来看两个复杂一点的查询

查询年龄大于32且姓名为liyunlong的人

MongoDB 查

查询年龄大于32或姓名为fanbingbing的人

MongoDB 查

4. mongodb的in和nin

查找年龄在列表[ 27, 56, 18]里的人

MongoDB 查

查找年龄不在列表[ 27, 56, 18]里的人

MongoDB 查

5. 正则

"^XX"  以XX开头的字符串                                                     "XX$"  以XX结尾的字符串

(1) 查找姓名以li开头的人  

MongoDB 查

(2) 查找姓名以ang结尾的人

MongoDB 查

6. mongodb 与js

由于mongodb兼容js下面我们来看看如何用js的函数来进行查询

(1) 查找年龄大于32的人

MongoDB 查

查询年龄大于32小于50的人

MongoDB 查

js的正则这样表示:/ 正则表达式/

(2) 下面我们用js的正则表达式来进行查询

查找姓名以li开头的人

MongoDB 查

查找姓名以ang结尾的人

MongoDB 查

7.mongodb的排序 分页和统计

(1) mongodb用sort( [ condition] )排序,sort( )不填入任何条件,默认是以id升序排列

a:下面我们以年龄升序排序

MongoDB 查

sort( { age : 1} ) 是指以age排序,1指的是升序排列,-1是降序排列。

b:我们在看一个降序排列

MongoDB 查

首先以age进行降序排列,当年龄相同时以name进行升序排列。由于fanbingbing的首字母f的ASCII值大于lixiaolong的首字母l的ASCII值,所以fanbingbing排在lixiaolong前面。

(2) 分页 limit

a:  limit( x ) 只显示x条

MongoDB 查

 db.c_select.find()一共查到五个文档,而此时只显示了2个文档

b:  skip( y ) 跳过y条显示

MongoDB 查

 db.c_select.find().skip(2).limit(2) 一共查到五个文档,skip( 2)让查到的文档从第3个开始显示,前两条跳过,而limit限制显示的数目,让文档只显示2个

(3 ) 统计 count ( )

db . 集合名 . count ( [condition] )             

a:统计集合的文档数目

MongoDB 查

b:统计age大于30 的人数

MongoDB 查

MongoDB 查

( 4 ) 去除重复  distinct 

MongoDB 查