MongoDB---find

db.map.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
                                                      e.g. db.map.find( {x:77} , {name:1, x:1} )
        db.map.find(...).count()
        db.map.find(...).limit(n)
        db.map.find(...).skip(n)
        db.map.find(...).sort(...)

 

以上是官方给出的解释。

 

下面来做一些例子。

首先先来看一下集合的构成。

find的第一个参数,是查询条件,第二个是用来人为的定义,显示哪些文档,比如_id:0就代表不现实_id列,

这里就显示name和age列。0:代表不显示,1:代表显示。

$gt:大于,$gte:大于等于,$lt:小于,$lte:小于等于,$ne:不等于。

为了弥补没有等于的缺陷,可以使用$exists来替代。

$in 用来指定某些参数的范围,但是是针对一个参数,只要在集合里面即可。而$all则是指定该参数要全部符合。$or则是可以指定不同参数的不同条件。

上图表明了,要么name是lili,要么age是21或者22,是关于2个不同列的条件查询。

mongodb还支持正则表达。

这里使用/lili/匹配所有有lili字符串的文档。而且正则也可以匹配自己。比如文档中有一列 叫 /lili/的 也可以匹配到。

limit(a)限定显示的a行,skip(b)为跳过b行,

$slice[2,1]表示跳过前面字段数组中的,2个,显示后面的一个

但是像上面的school这个例子,他在school下面还有3个school数组,可以通过school.school来显示,但是会发生只要匹配其中一个就陈功的问题,所以需要使用$elemMatch来进行精确的属组匹配。切记在"x.x"前后要加入双引号。要加入双引号!

可以看到下面一段,直接查询,其实我们想要查询的是,一组数据为[school:"L",score:"K"]的,但显然是没有的,但是却返回了值,说明他只是拿他做了分别查询。查询到school有L的,score有K的,而不管是不是一组。

而前一段的$elemMatch就是进行了精确的 数据匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值