00:00
刚才呢,我们已经把这个2万条数据已经导进去了,那接下来我看下边这几个啊,从十八一直到25这几个,嗯,那第一个我们18叫做什么呢?叫做查询numbers中number为500的这个文档,那其实这东西对我们来说so easy了,对吧?怎么玩啊DB.nu1numbers点一个什么呀,Find啊点一个find find什么呢?Find一个这个number为这个500的啊,500诶我创建的number,诶叫numbers是吧?这是不是就找到这个了,哎,Number为500的啊,Number为500的,那这是不是就非常简单了,哎,那再往下看下边干嘛呢?下边不是。等于500了是什么呀?大于500,那大于我们怎么用?嗯,那其实这块就要用到我们这些查询操作符了,刚才我们用的主要是修改操作符,那查询错符怎么看呢?那这块啊,那这里边在查询,在上边是不是有一个查询操作符啊,诶直接一点开,它里边会分很多啊,什么比较的呀,什么逻辑的呀,什么元素的等等,会有一堆在这儿,我们来看上边这是什么呀,这是比较的啊,用来比较产生套谱,比如说是看什么呀,EQ叫做ES啊equals,然后这个G叫做great啊,大于g de叫great,哎啊,那这个ES叫大于等于等等,下面是不是有一系列的呀?啊一系列在这,我们可以用它了,那比如说我们要大于应该用谁啊DT,那应该怎么用,可以直接点进来看它,这块会有一些这个例子来告诉你这东西怎么用,是不是这种用法啊,或者更直接的方式,看我们这块在上。
01:43
上边是有一个这个queriess这个分类啊,Quariess下边这是不是有例子呀,比如说这有一个A冒号,一个Dollar,一个GT,来一个什么呀,十这什么意思?哎,找A的这个值大于十的啊,大于十的,所以在这我要怎么改,那我要怎么写DB,点一个numbers,点一个find,同样还是number,但是注意这时后边可就不是直接跟直的要跟什么了,诶跟个大块啊,跟大块,因为这里边我要传一个相对来说比较复杂的条件,这必须得跟点大块,然后怎么写刀符,一个GTGT来个什么呢?来一个500,这边什么呀?哎,找这个值大于500的,我们来看啊,这直行。
02:33
这是从五百零一开始,你看懂吧,这是我们找这个number值大于500的啊,你说它包包括等于,不包括等于,那如果要等于呢,在gte这一直行。是不是就从500开始了,哎,百开始啊,这一下午啊,GT大于g de大于等于,那这里边它会给你列了,除了GT呢,在这还可以干嘛呀,像LT小于gtee大于等于LTE小于等于,还有什么呀,Ne叫不等于not equals是不是都可以用啊,哎,都可以用,甚至说什么呢?我们在上边如果查等于500的,我也可以这么写。
03:16
写什么呢?写EQ500这一直行是不是也是E500啊,但但是这两个是不是看起来效果一样啊,但是它会有一点小区别,什么区别呢?就是那个数组的时候对吧,数组和方向么?错了,如果是这种的话,如果数组里边只要有500,它是不是能返回啊,只要500能返回,而这EQ呢,它得要求什么呀,你得和五百一样,你不能是个数组就得是一样的,所以这种两种方式都能用,但是一般情况下不会出现说必须得是个数种情况,其实一般用这个就OK了,那就OK了,好,这是我们说这个大于,然后再看下边什么呀,小于30的,那怎么办呀,那是不是一样了,哎,就没什么区别了啊,小于是什么呀?哎,LT less LT一个这个30,那这个应该就是从一一直到29。
04:06
是不是一到29啊,哎一下小于30的,然后诶这就来事了,说完这大于40,小于50的是不是在40和50之间呀?诶那我们来看看怎么写了,DB点一个numbers,点一个find还是这个number啊number number要大于40,那我来一个do符一个这个GT来一个什么呀,40,然后呢,小于50,那是不是又一个条件呀,那这怎么写啊,哎,你们来个逗号带刀的一个什么呀?诶LT一个50,哎是不是你要大于40还得小于50,是不是等于有两个条件的限制啊,哎,两个条件啊在这儿我再执行一下。哎,那不是nub少个B是吧?哎,少个B啊在这我们来执行一下,哎,这回来看是不是从四十一一直到49啊,哎,所以这块注意可以传多个条件啊,可以传多个条件好然后呢,下边这就没什么意思了,这是什么呀?大于大于1996的是吧?哎,三个九啊,这写一个113个九,一个六,这一执行是不是查询到九七,一直到这个2万只对吧?哎,2万只这都比较简单了,我们就不多说了,诶然后下边就出来东西了,让我干嘛呢?让我查看numbers集合的前十条数据对吧?前十条数据这好办,DB点一个UMB啊,Numbers点一个find find我们来什么呢?来一个number前十条数据,诶是不是小于11啊,或者说小于等于。
05:55
值到符一个less z l TE还什么呢?十这里执行是不是前十条数据,前置数据,但是注意我这么写是有问题的。
06:06
有什么问题呢?现在其实我们这个数据它是有点特殊性的,为什么特殊性的,现在我这个数据它里边就一个number值,而且number值是从一开始是顺序递增的,对吧?所以现在我可以用这种方式,那假如说我这不是这么一个顺序的,那可能我这就是一个什么呀,就是一个就是一个比较随机的数据,它没有规律,没有像这文中这么一个一到十这种有序的序号,那这个数要怎么办?这时候怎么办?假如说我这数据可能什么呢?现在我前十天就是一到十,那可能我这数据有可能干嘛呀,前边没有567,没有五六期,就是1234,然后八九十,那这会儿我再这么写是不是就不对了,是不是就少了三点啊,我应该还把11 12 13是不是都带上,那所以这就会有一个局限,那我怎么能确保即使这个数据它不是什么呢?不是这种有序的,我也能让它显示前十条。
07:02
怎么办呢?哎,那这里边我们有一个函数,咱们先这么写啊,我直接来一个DB,来一个nub numbers,点一个find,那这样写的话什么效果一执行是不是查询所有的数据啊,哎,查询所有的数据,那我怎么能只显示前十条呢?哎,在这我来一个liit,叫做一个limit,来一个十,Limit是什么限制,哎,Limit可以什么呢?可以可以来设置我们显示数据的什么呀,上限啊,上限什么意思?我来一个limit,米的十表示什么意思?最多显示十条,你说不够十条,你可以显示八条还是九条,你不显示都行,但是你最多你不能超过什么呀,十条,那这样我们来运行,你看效果是不是只显示十条,哎,直显条啊,这条limit限制我们这个上限,那你说这东西有什么用,其实这个我们在开发里边会用的非常多,什么意思,看这。
08:03
我一写范的,你看。很好啊,我一执行find的,他会把我这2万条数据是不是全都查出来了,那注意了,像这种语句,我们在开发的时候是绝对不会用的,一定注意是绝对不会用,在我们开发时,我们绝对不会执行不带条件的查询,绝对不会执行,为什么不会执行?诶注意了,不带条件的查询什么意思是把我们这个里边这个集合里边的所有的数据是不是全都查出来呀,全都查出来能理我意思吗?就像什么呀,就像你上百度,你搜索一个关键字,百度干嘛呢?把所有结果全都给你列出来,那可不可能啊,不可能啊,不可能,为什么?第一个首先说第一个问题,第一个这样我们说了刚。
09:05
但我们也看到它的执行速度花费多少3.6秒,那如咱们这才2万条数据,假如说你是百度,他要执行这么一个百度可能什么呀,两亿两二十亿,甚至2万亿条数据,能理解吗?他这么一查,有可能服务器都挂了。知道意思吧,所以这一块不会查询所有的数据,这是第一个,它的性能会比较比较差,我们的性能要求最低,最低的要求三秒钟页面你都必须得出来了,你现在查数据提供了三秒多,是不是性能很差呀,这是第一个,那假如说了同学说老师我这服务器优化的很厉害啊,很棒啊,两万一条数据一毫秒就出来了,我就查行不行还是不行。为什么好,咱们假设第二种情况,你性能很好,你查了两万一条数据查出来了,一秒一毫秒查出来了,那注意了,你这数据是你自己看的。
10:03
你是要发给我们的用户了吧?好,你发给用户,那我问你这2万条数据,你光发过去你得用多长时间对吗?这是一个问题,诶好同学说了,老师我这网速特别快,两万一条数据瞬间发过去了,可能这整个连查带发两毫秒,那行不行呢?还是不行,为啥不行呢?第三一个好数据,这2万亿条数据你发给用户,用户是不是得乱气看呀,那注意这2万条数据,两万一条数据啊,同时在乱气渲染,那注意你电脑的内存撑都撑不住啊。是不是有可能用户的电脑挂了呀,浏览器可能就废了吧,哎,同学又说了,浏览器性能很好,两万一条呢,可能我这内存扛得住,而且速度特别快,行不行啊,还是不行,为啥呢?好,我问你,我给你两万一条数据,你看吗?没用吧,哎,没用,所以注意所有原因都我这两万一条数据,即使给你看了,你压根你是不是看不过来啊,所以注意综上所有原因,一定注意我们绝对不会执行这种不带条件查询,或者说我不会支行这种什么呀,一下子给给用户返回的数据干嘛呀,特别多的这种东西我们都不会执行,所以你看我上百度,我要搜一个东西,比如说就典型我搜一个。
11:32
完了,这主页上不去了是吧?那咱们假如说我上百度搜一个mango,它数据库里跟我们这个mango DD相关的综艺有多少,是不是有很多呀,那我问你他会不会一下子把那些数据都给我返回啊,你看他给我找了多少个,这是这是我算不过来了是吧?哎个十百千万,十万百万千,2000多万个吧,2000多个数据,那他会不会把这2000万个数据一块给你返回啊,不会,你是不是看不过来啊,那怎么办呢?
12:03
哎,它是不是分页啊,哎,分页我一共有两条条数据,我第一页让你看十条,第二页让你干嘛呀,再看十条,第三页是让你再看十条啊,哎,那所以这样干嘛呀,它下边是不是有一个页码啊,你想看第二页你点一个二你想看第三页点一个什么呀,三是不是就OK了,能看懂这意思吧?哎,所以这块我们要进行一个这个分页的显示,那我们这个limit就是干嘛的,就是主要用来什么呀,分页的好,那现在我查询的数据,我查询的数据,查询了2000万条数据,那怎么办呀。那怎么办呀?哎,2000万条数据,数据虽然多,但是我就让你看十条,你说我要想看价值条怎么办?点下页懂这意思吧,哎,家懂这意思啊,好,那现在来看下边一个,下边一个我们这要查看什么呢?11条到20条数据,那我一想,那这这so easy limit米再来个20行不行,一直行的确显示到20,但是我厘米的20是不是变成一到20了,它实际上是不是多了十条数据啊,那这11条到20条相当于什么?是不是相当于我的第二页呀?那么想想啊,我们来说一下我们这个分页分页的数据显示啊,分页分页甲方说什么呢?我每一页显示什么呢?显示十条,那我第一页应该显示什么?是不是一到十啊?哎,一到十第二页呢?
13:38
诶,11~20,第三页是21~30,是不是依此类推呀?哎,以此类推,那现在等于我要显示11~20,是不是等于要显示第二页呀?哎,显示第二页,那我这LIMIT20行不行?我limit能不能变这个值我是不是永远都得是十啊,为什么呀?因为我每页是不是就显示十条啊,你LIMIT20不是变成每页显示20条了,所以这个十永远不能变,但是问题来了,我这一写实它就变成什么了?
14:11
是不是前十条了,我要查询的是11~20条怎么办?也就是说前十条我是不是已经看过了,那我能不能把前十条给它跳过去呢?诶,那在这儿我可以来用于什么呢?用一个这个skip s sky I skip来源什么呢?10SKIP叫什么叫跳skip,它用于跳过我们这个指定数量的这个什么呀,数据啊,指定双数据,所以这一查,首先DB.numbers.find表示的是查询所有的数据,然后KEEP10干嘛跳过前十条能理解吗?把前十条跳过,然后再limit时最多显示十条,那前十条已经跳过了,那再显示是不是就从第11条,哎,第11条,所以这块。
15:11
来看直接一直行。Number从11是不是一直到20啊,这是不是就11到第二条数据啊,哎,二条数据啊这么一个效果,然后说再往下看,那现在我们来说,那假如我显示21~30呢厘米,它用不用动厘的不用,因为我总是最多显示这条吧,那我跳过几条,哎,跳过20条,这样再一直行,是不是21~30,看懂这意思吧,哎,所以注意啊,叫做一个skip,用来干嘛呀,跳过,所以这这个公式其实就很简单了,那其实我这公式就是什么呀?就是一个SSP,咱们先说SSP,然后后边一个limit,这limit应该是什么?就是每页显示的一个条数,哎,你每页显示几条我就干嘛呀,我就limit是几,你说我最多显示100条,我就limit它100,显示50条,我就LIMIT50,能懂意思吧,然后这S呢,第一页应该是什么零啊,第二页呢。
16:16
哎,第二个是十,第三页呢是20,那这应该是什么?STEM实际上是我们这个,哎索引或者说我们这个什么呀,页码页码干嘛呢?页码减一乘以我们这个每页显示的乘数。能懂吗?页码减一页码第一页第二页第三页对吧?我第一页减一是不是变成零啊,零乘以任何数是不是都得零啊,所以第一页用不用跳过不用跳过好第二页页数二减一变成几啊?变成一一乘以每页显示条数,那我如果是十,我是不是跳过十条了,如果20就跳过20条,看懂意思吧?哎,页码减一乘以每页显示一个条数,或者说老师你说了,老师我这页码是按从零开始的,01234是不是按照所有那种方式写的呀,那你就直接干嘛呀。
17:09
直接索引成就完事了,对吧?哎,直接索引成完了,如果是页码就页码去减一就OK了,看懂了吧?哎,你先跳过指定条数,然后再限制一个显示的一个总数啊总数好再往下看,再看看什么呢。诶,大家注意了,看着啊,我刚才这么写叫做KEEP10LIMIT一个十,然后我这一执行。十一一直到20对吧,11~20,那我现在干嘛呢?我换一个我LIMIT10S keep的十,这样行不行。行不行,哎,我们来看看啊,这一看这意思好像不太对了,根据我们的经验,我这函数顺序执行对吧?先执行find是不是先把数据都查出来了,然后limit时限制显示十条,你说我这1LIMIT的时候,把我这数据变成只有十条了,我再死KEEP10就没了是吧?会不会有这问题呢?哎,不会,效果是一样啊,效果是一样的,为什么?哎,我们这个mango DB它会什么呢?它会自动调整我们这个speed和这什么呢?和这个limit的这个位置,哎,Limit一个位置,所以这里边skip和limit谁写前谁写后,一点区别都没有啊,怎么着都一样啊好,这是我们说的一个这个limit,还有这个skip啊,主要说这两个,然后上面说了一些这种这种操作符啊,这种操作符,然后再来。
18:43
再看看我们还没有没有什么,嗯,要咱们待会儿再说吧,剩下还有一些这个查询的这个操作服,我们先说这么多,先把这几个来说一下,你先把这几个来自己操作一下,剩下的到再说啊,先停一下。
我来说两句