00:00
Model说完了,接下来我们来说我们的这个文档,零四叫做一个document啊document,那document刚才我们说了,我们从数据库里查询到那个结果是不是就是document呀啊document,那document我们叫做一个文档,Document和我们这个数据库,也就是说我们这个集合中的这个文档干嘛呢?诶,它是一一对应的啊,一一对应的也就是说什么呢?我们这个文档,我们集合里边这个文档到了我们的noe里边,到了我们程序里边就变成了什么呀。Document,所以两个名都一样,是不是都叫document啊,叫document啊,那我们来说document是我们这个model的一个实例,这刚才我们已经证实过了,对吧?哎,Document是model实例,那我们说什么呢?哎,通过model,哎查询到的这个结果,诶都是什么呀?都是document啊,都是document的,那我们查询我就不演示了啊do cot查询我们先不演示了,那我们要说什么呢?诶,那我除了查询。
01:06
我能不能凭空创建一个document,能不能来我们来创建一个这个document行不行,肯定行吧,那无信非得查我自己创建一个,那当然可以了,那这块其实如果你看文档的话,你能看到它应该在最上边model大model大model告诉你调的是一个什么呀,构造函数,人家写了model的什么呀,构造函数,诶这写什么呢?它需要一个参数叫什么呀,Dock其实就是一个对象,诶位置什么呀,你奶你将创建那个文档啊,你将上那个文档,所以这块我们直接看怎么用啊,这看怎么用,嗯,打开这直接来一个哇,一个我们这,哎我这么写哪行啊。前边这一堆是不是还没整过来呢,哎,来我给你整过来啊,所以你会发现这块也会有问题啊,什么问题啊,这这哥几个老得这几行,那哪是不是老得跟着我呀,我去到哪儿他就得跟到哪儿这个事。
02:14
有点烦人是吧,哎,有点烦人,那我们想想怎么样能把这堆动代码给他。哎,放别的地儿去呢,哎,咱们待会得咱们这个东西今天说不到了是吧,晚上回去好好想想有没有什么办法吧,咱放别的地儿别老跟着我这胡烦的是吧,关键还得我得我得粘进去啊,我得粘出去好在这儿我们来创建一个do呢,怎么创建呀,直接来一个s student等于什么呢?谬一个s to model子直接谬一个对象里边我直接传一个这么一个东西,写个什么呀,Name name,我们来一个。诶奔波吧奔波霸age呢是48,诶然后呢,这个粘的呢是一个map ma啊对,然后呢,这个address address叫做一个碧波台啊碧波台哎,那现在我们是不是创建了一个新的文档对象啊,哎,在这我们来看一下啊,我直接来一个sto,点一个log,我这一执行咱们来运行一下,诶一打印你看诶叫奔波吧AGE48住在碧波台,然后ID是不是都有了呀,I都有了,但是注意啊,诶ID都有了是吧,我这数据你说插没插到数据库。
03:30
插不插数据库,哎,来有没有没有啊,并没有插进数据库,所以在这儿我仅仅是创建了一个新的对象,并文档对象,并没有把这个对象插进什么呀,数据库里啊,并不是说创建完它就插入了,我要想插入干嘛呀,我还得去调它的这个方法,但是你要知道我这块是怎么啊。怎么整的,怎么充淀的,是不是直接扭就行了呀,哎,直接扭就行了啊,那然后我们来看他怎么插入的数据库啊,哎,在这我们来看需要调一下它的一个方法,来说一下document的这个方法,它这方法呀,我们直接说有一个叫什么呢?叫做一个save save什么意思呀,保存啊,保存在这我们来找一下吧,Save save在这儿你看啊,这写的可是井号了,井号表示的是我们那个对象的方法了,对象的方法啊,它这个写的比较复杂,咱们不管它,咱们不管它,咱们就用我们最简单的用法,就两个参数。
04:35
一个是还有一个是function啊,Functions其实咱们都不用,因为我们一般是不是直接把它往里存啊,往里存其实这块我们就直接调个,其实啥都不传都完都没事啊,啥都不传都完事,这里边我们直接写吧,来什么呢?来一个这个叫做sto,点一个SE,直接调一个SE,那如果你需要看一个结果,你传一个什么呀,Function里边会有一个error,如果没错的话,我们来cancel.log一个叫什么呢?保存成功啊,保存成功在这儿,我们一保存,咱们来运行一下,直接走走,说什么呀,是保存成功啊,上边那报着红字,不用管它,跟他没关系啊,保存成功看数据库,直接一执行走你。
05:24
是不是进来了,哎,蹦蹦发就进来了啊,所以注意我们在保存的时候,我既可以干嘛呀。我既可以用document点一不是这个model点一个create,我是不是可以调这个save,哎,两种方式都可以啊,两种方式都可以,但是注意这个C我是通过文档对象调的,你要通过这个model行不行啊,哎,我就不行了啊,可就不行了,这是我们说的一个啊好,然后再往下说,还有其他方法,那这块我就不拿这个崩卦演示了啊,我这块干嘛呢?我来查一个对象数。嗯,怎么查呢?我直接调一个s tu model,点一个find one find one里边呢,我直接传一个空的条件function,然后R一个doc,那这个能看懂什么意思吗?没条件是不是查所有的呀,而我又用的是find one,那这是不是查询第一个呀,那第一个是不是就是我这个大师兄孙悟空啊,哎,Doc点一个log直接运行走。
06:27
是孙悟空,哎孙悟空,然后我们拿这个对象来演示,我就不再去单独去创建,因为有一些对象不能我新创建,我得干嘛呀,我得是来用应用对象来演示,来看一下document对象的方法,我们直接看我们这个关键的叫做。哎,Document咱们就不用查询了是吧,主要就这三个。哎,第一个叫update save,我们是不是已经说到了,不管它啊,第一个叫做update,第二个叫做remove update叫什么?呃,修改我们这个对象,而且你要注意了,这个update之前我们调的那些update第一个参数都是先传一个条件,对吧,但是这个update你要注意了,诶有没有条件。
07:26
没有条件,直接是传一个update呀,那什么意思呀,看着了啊,我要调怎么调,我直接调一个do,点一个up date都不用传条件,直接传结果,来一个Dollar,一个set Dollar一个set,我来一个什么呢?来一个这个age,来一个呃,28,我要修改它的年龄为28,然后这来一个function还是一个error,如果没有错误,我这就输出一个cancel log,一个这个修改成功啊,修改成功那你要注意了啊,注意诶啊,那我问题来了,我这没有条件,我到底改谁啊,是不是改他自己啊,因为我们这个document就已经是一个具体的文档了吧,所以这个时候你再调的,其实改谁是不是已经很明确了,改谁呀,是不是改他当前的对象了,哎,我就没有必要再传条件了,所以在这儿我直接一运行,咱们来看效果。
08:27
总锦是不是告诉我续怪成功了,这个时候我们再看这孙悟空年龄是不是变成28了,看懂这意思吧,哎,所以在这儿啊,他不用传条件了,稍微省一点是,或者其实更直接的改法还怎么改,你不是想把它年龄改一下吗?我来一个doc.a等于18,我是不是直接把它年龄改了,然后doc点一个C,这样行不行?哎,来运行一下走。没解回到函数啊,直接看结果走,你是不是也行啊,哎,也行啊,所以这两种方式哪种都行啊,哪种都行,你用save或者用update都行,但是好像这个玩意儿好像稍微的好理解一点是吧?哎,好理解啊,好,这是我们说的这个修改,修改呢,然后update这的,然后这个remove remove,你看它这更简单了,也不用传条键,是不是直接传回到函数了,那你说这什么效果呀,哎,删除对象,我这一删大师兄就没了对吧?哎,传一回调函数啊,咱们来一个这同样也不需要条件,因为是不是已经明确就是这个对象了,点一个remove remove function,来一个error error呢,我这写一个if一个这个error来一个cancel.log一个这个,诶大师兄再见,没了是吧?哎,没了啊,老惨了啊,来运行一下,走,你咱们来看大师兄。
10:00
再见。来看数据库里。这一执行。是不是没了,哎,大师兄就被我们给了删了啊,所以注意我们通过这个model可以去操作数据库,通过这个刀是不是也可以啊,哎,也可以啊,然后再说几个啊,再说几个,其实就没有那么的重要了,有个get,还有一个set。嗯,那这块我们来说一下,咱们就那这回这回这道他就不是大师兄了,是谁了,是不二师兄了,诶二师兄我们猪八戒啊有一个get,还有一个叫做set get呢,他写的是pass们直接写的就是一个name叫什么呢?叫做获取我们这个文档中的指定属性值啊指定属性值我们来看一下,直接来一个呃,Do点一个log,我这写什么呢?Do点一个get,然后里边传一个name什么意思,获取这个文档的name属性值啊内属性值直接在这运行一下走。
11:10
说猪八戒呀,哎,猪八戒啊,Get是获取属性值,你说我获取name就是get name获取这个edge就是get age是get,但是其实在这用这个玩意有点麻烦,为什么呢?我可以直接点什么呀,Age啊,直接点age,我这运行。是不是也行啊,哎,所以用get相对来说有一点点麻烦啊,有点麻烦,这是一个get,然后再说set set是什么呢?这传的name,然后这传一的什么呢?Y塞列很明显是什么呀?哎,设置设置我们这个文档的指定的这个属性值,那这块就是直接来一个do,点一个set set来什么呢?来一个name name改个名叫做朱小静,朱小静。朱小小朱小姐很难听是吧,来这整完了以后呢,然后我们在这儿来一个cancel.log一个dog,那其实这很明显的意思就是把它内部属性是不是改成这个啊,哎,这个我在这一运行走是不是变成注册表了,那注意数据库里变没变。
12:18
哎,数据库里没变啊,数据库里不会变的,因为我在这有没有掉save,哎,没有掉save,所以数据库里边是没有影响啊,没有影响的好,这是在盖,还有其实这块也是比较麻烦的,我直接最简单的玩意,直接doc点内等于个哈哈这样写。是不是一个效果呀,哎,一个效果啊,所以完全可以用这几个去代替啊,这几个代替好,这是我们说get,还有这个set,然后还有一个属性,我们叫做DD,很明显就是获取我们这个文档的这个下划线ID这个属性值,所以在这儿你直接来个do,点一个ID,这一运行走是不是就是那个ID啊,哎,或者其实你在这用下划线ID。
13:15
是不是一样的结果呀,哎,用ID或者下划线ID都行,但是注意这块ID它跟那属性名就不对了,我们属性名还是叫下划线ID,我们获取的其实也是他啊,也是他好,然后再来说还有什么呢?还有我们其他我就不再细说了,还有什么ES。比较两个文档是不是同一个is new是不是一个新的文档,诶也就是就是有没有初始化呢?如果初始就是有没有和数据库进行关联,说白了这个文档有没有存进数据库,如果存进去就是一个什么呀,就是for,没存进就是true啊,就是新创建的文档it in it里边传的是一个路径,什么意思呀,就是这个属性有没有初始化啊,这个属性有初始化,这一般都不咋用啊,我们就列了一下,然后有两个,一个叫做to杰森,还有叫to of,这两个要说一下。
14:09
但是这也其实没啥可说的,因为这这这这东西要看不懂咱们就白学了对吧?图阶那是干嘛的?哎,转换为一个杰森对象,哎转换为一个这个杰森对象,或者说是一个杰森字符串对吧?哎接字符串,那这块直接看吧,复制一下住掉这直接掉一个to杰森,哎,To杰森看结果直接运行。来。哎哟,这吐半天没吐出来感觉。我们来看看啊,这块我调一下挖一个这个杰森接吧,等于一个do点一个to接to接着呢,然后我打印一下这个接。
15:05
打印一下这个接我们来看看。这个是个type of,这还不像是个字符串,Object object,你让我to杰森干什么呀?那看来这个to杰森这块有有问题是吧?有问题我们来看一下这文档啊,这文档to to to杰森。兔街子。该不是这是选项啊。那行,这方法待会儿我再去,我去看一下吧,转换能接他,但这块咱们再说一下啊,刚才我们看到了,实际我看到情况是我掉这兔尖的吊完了是没用了,吊完了跟没掉是一样的,那基本上可以推断这方法应该是有问题了,或者说干脆就就就就不能用了啊,就不能用了,待会再去核实一下,到底是哪的问题啊,脑袋问题,待会再看一下,但是现在就是不能用了啊,我看看跟倒是不是一个东西。
16:17
Fourth fourth,那这就不能用了啊,咱们先不管它了,我先说这个to就先住了,肯定这方法又改了,那这to阶转为阶层对象,那这个我先给他画个星号啊,注释一下,这有点问题啊,有点问题,我们来看这个to object to object干嘛的呢?To object是将我们这个呃,Document对象哎,转换为什么呢,转为一个普通的GS型,哎,把这个document的镜像转换成一个普通的GS项,那其实现在看我这two间呢,跟这图有点差不多,挖一个O等于一个do,点一个to of Jack就是把它转换成一个普通的一个简就行,直接cancel.lock一个O这一保存。
17:07
运行诶,咱们来看这一块就转换成一个普通对象了,这这看着跟刚吐尖的是不是基本上类似啊,这两块我感觉好像一样好一样,待会再去核实一下啊,核实一下,但是这里边我们来说一下这有什么用,转换为普通G象以后注意了,转换为普通的这个GS对象以后注意什么呢?我们所有的这个document对象的方法就方法或属性都不能使用了,都不能使用了,所以说白了,你这转完了,你说我来个o.save吧,得了吗?Save不了,那已经是一个普通的集对象了,你就当成一个普通的压对象,它的作用只是用来保存数据的啊,保存数据就不能再去操作数据库了,一定注意啊,转成普通减压对象,那同学说了,老师是为什么要转换成普通的解压对象呢?
18:02
哎,有一些情况下,我需要转什么情况下,比如说现在注意啊,现在注意我在这个document里边,我直接cancel.law的一个document对象,我这一打印,这个对象里边是不是包含所有的属性啊,诶,比如说这个对象里边有一些属性是敏感数据,是只有我的管理员才能看到的,而普通用户是看不到的,我想给他删了,比如说猪八戒住哪儿,这个对我们用户猪八戒来说是个隐私,我不想让别的用户看见,那我就想干嘛呀,我是不是想把我的拽的这个属性给他删了呀?哎,怎么删除一个地方的属性怎么删,哎,我们是不是有一个底delete呀,哎,Delete我们来一个doc点一个呃,Address这表示什么意思,删除我们这个对象里的,呃,Address这个属性可不是S,我们是从数据库里删吧,这一块我只是现在临时从这个对象里给他删了吧,但是这时候你要看了。
19:07
我们这儿狱警。有用吗?呃,转子是不是还在呀,所以这个时候它的属性是删不了的,那我要想删怎么办?哎,我就需要来一个把它转换成普通的对象doc,等于doc点一个to or过转换成普通对象,然后再给它赋值回来啊复制回来,然后这个时候我们再运行。是不就没了,哎,这时候我们需要去转,但是一般情况下,其实转的情况不多,也除非需要去删属性的时候去转一下啊,一般不会啊,一般不会,而且还要看一个问题,什么问题呢?注意啊,刚才我们到我们对象,我点ID是能点出来的,对吧,现在我是不是已经把它转换成普通对象了,这回点一能不能点出来了,点不出来了,为什么?因为ID是刀Q对象的属性,现在它还是不是刀,对它就是一个普通的GS项,那你要获取ID怎么办?哎,你得下划线ID这样才可以。
20:12
啊,这样才可以啊,好,那这块我们又说了一部分的这个刀Q的对象方法啊,但是还是你看这可能会觉得很奇怪,觉得没什么用,但是别着急,等往后我们做项目的时候,这个用处自然而然就体现出来了,现在先把它记住了啊,先给他记一下,然后图阶呢,待会儿我再看一下啊来我先。
我来说两句