00:00
来说啊,那我们现在已经连接上mango DB数据库了,那接下来我们来说一下怎么操作数据库,那注意了,刚才我们说了在mango里边,Mangoose里边给我们提供了三个核心对象,一个叫做s ch d ma叫做SC,还有一个叫做model,还有有一个document,一定注意他们三者是有先后顺序的,一定是先有Che,再有model,然后再有document,其实document有没有都行,主要就是还有谁呢?Model啊,主要是要model,那document并不是一个必须的,如果你说不查询的话,Document其实用不用都行,但是查询的时候肯定得用到document,那我们这来看一下,那怎么玩,这里边我直接在创建一个新的GS文件,我们来一个零啊,我们来一什么呢?我们来说一下这个。嗯,DEMO吧,写个DEMO桑,于是又呵又写错地儿了。
01:00
这个我这这这拖的太远了。来吧,给他删了吧。来这块我们来新建右建,新建一个这个GR文件零二,我们叫做一个mans,一个DEMO,然后在这我们要用的话还是重复一下这几个步骤先,呃,先挖一个mongo mongos等于个这个require mongo先来引入,然后是mongos,点一个这个砍ne这块我们需要写一个路径,Go mongo DB,冒号斜杠,斜杠log,或者写127.0.0.1,然后连接的是我们这个oneose,一个T,诶连接的是这个数据库,然后这还有一个参数,咱们给他写什么use mango CD client来一个true啊,Use use啊use mango来一处,然后呢,在这我们可以再监听一下它状态,Mangos点一个这个connection,点一个这个ones ones,然后我们这来一个这个open这。
02:11
来一个function function直接cancel cancel,我们来一个,这个是数据库连接成功啊,连接成功在这,我们来保存一下,直接运行。走,那现在是不是已经连接成功了,哎,连接成功了,那接下来我们在这我们要使用mango DB,第一件事,我们要先创建我们这个stemmer这个对象啊,创建stemmer,也就是我们模式对象啊,模式对象或者或来说什么呀,我一般希望更叫他这个约束对象,因为它是对我们集团进行约束的,那这东西怎么创建,哎,还是啊,我告诉你文档在哪找,看这mongoose JS mongoose的一个官网,它叫mangoose gs.com啊,Mangos j.com不知道,就百度搜一下啊,然后呢,有一个叫做red the DOS读文档,或者说你说我不想读,不想读在这儿其实也能看见,但是他这写的不好啊,写的不好我们还是来读这个DOS啊,读这个文档read dogs,然后在左边是不是有一系列导航啊,其实你都不用看了,直接看这儿,其实一上来进到的就是这个什么呀,叫做定义你的这个。
03:23
是不是定义你自己的约束对象啊,哎,我们来看它是怎么定义的,哎,那首先在这儿它先来了一个挖了一个STEM等于一个mongoose.stem这个步骤没什么技术含量说,说白了就是什么呀,把这个mangoose STEM这个变量赋值给了一个,这个属性赋值给一个变量,对吧,实际上说你说我不复值,我就用它行不行也行啊,完全行,就复制完了以后省点事啊,复一个值,然后在这忘了一个lo等STEM等于一个new,一个schema,是不是调这个函数啊,这是不是刚才new这个呀,其实你直接new mangoose.schema也行啊,也行,然后在里边创这个参数,这构造函数里边传了一个什么呀,是不是传了一个对象啊,你看这一大块,这一大块传了一个对象,这个对象是干嘛的?就是我们约束的一个信息,比如说你看这写了一个title title冒号string什么意思,这就表示我以后创建的这个文档里边有一个属性,属性名叫。
04:23
啊,Title,然后title的值是什么?哎,类型是string,也就说你这个得有title,并且title还得是字符串,你看author是不是也是字符串啊,还有什么呢?Hidden hidden什么呀,不里是不是布尔值啊,哎,这Meta Meta得是个什么呀?哎,Meta这块FLY点它得是一个对象,对象里有两个属性,Was,还有叫famous都是什么呀,Number看懂这意思了吧?哎,就这么一个简单的格式,其实我不说的话,你看这个模仿你是不是也能模仿出来啊,所以这个文档一定要学会去看,就算你说我上这几天课什么也没学会,学会看文档了,那恭喜你,你已经成功了啊,你成功了啊,好,但是注意啊,你说这玩意儿,这破玩意儿,谁第一眼看着不烦?
05:10
谁瞅你就心情不好这玩意儿是吧,很容易心情不好,你为什么老看着洋人的东西是吧,为什么没有中文的东西,那中文的呢,你点一下翻译,哎,谷歌翻译非常好用是吧,非常好用,看一下翻译也就OK了,但是有时候翻译不是特别准确是吧,翻译不是特别准确,不懂的时候看看翻译,懂的大概情况下看看英文啊,OK了,好写了。创建scam对象这块我先整这么一个步,Y一个这个sema等于一个mangos,点一个SC,哎,大写的scanner,注意这一步是不是必须的,不是必须的啊,那这块我们来说,将我们这个scanner,哎,将我们这个mongoose点一个ch chema,哎,赋值给一个变量,这一步的目的就是让我们待会用这个东西干嘛呀,方便一点,不然你老得写这么长,对吧,还得写这么长,那现在我用这么一个短的是不是代替了,哎,然后下边创建schema对象,那我们创建一个什么的呀。
06:13
我们还是student吧,哎,Student那直接Y一个,我叫一个STU,注意啊,这SC是大写的,特意大写的,为什么?因为它是一个构造函数啊,构造函数STU叫做sc em maitu STEM student STEM等于什么呢?等于一个new,一个STEM,是不是整完了STEM啊,然后里边我要传的是一个对象啊,对象好,我们来看看,我们想想学生里边应该有什么呀,Name对吧?哎,姓名我来一个冒号类型什么呀,String啊,String然后呢?哎,Age是不是年龄啊,年龄应该是什么呀?哎,Number啊,Number,然后呢,哎,还得有这个address address我们来什么呀?String是不是地址啊,哎,地址,那咱们就写这两个意思,意思就完了啊,可能还需要一个什么呀,还需要一个,这个还需要。
07:13
做粘的,粘的时候性别呀,那性别呀,我用什么表示对你哎,你可以用string,可以用布尔值对吧,比如说我这写个玻璃是不是就不尔值啊,那布尔值怎么表示性别,哎,是不是处是男,哎或者是或是女是吧,或者这玩意儿,但是不尔值好不好?哎你说你让谁是谁也不乐意是吧,你说男的是for子,男的肯定不乐意,女的是for,女的肯定不乐意对吧?哎,那这块儿布尔值注意,我们在开发的时候,布尔值很少用,在数据库里,布尔值几乎不用,为什么?因为布尔值的限制太多了,布尔值的限制太多了,为什么布尔值只有两个值,一个是其实就是一个零是for,一个是什么呀,一是不是只有这两种值呀,那以后我改了,假如说我这块布尔值你再怎么用,你是不是也只有两个选项啊,要么零,要么一,要么处要么负的只有两个选项,那以后我这值扩展了,比如说单的,那现在我就两个值,只能表示男和女,那假。
08:13
他说单子以后扩展了呢,还有一个选项叫保密了,哎你们想歪了是吧?哎保密,那你说布尔值还行不行了,哎就不行了,是不是有限制了,所以一般我们不用布尔值啊,一般不用布尔值那怎么办?哎,你可以用number,比如说你用0A12是不是行啊,或者这干脆性别我们就是什么呀,String就完了啊所完了,那这一块用完了,你会发现我这个SC对象定义起来是不是非常简单呀,但是现在我们还没有涉及到复杂内容,那比如说我这点复杂了,我这粘字是干嘛的呢。他我这个网站的用户吧,我这个学生吧,可能我这个女性比较多,所以我就希望什么呢?他的默认值是女,哎默认值是那个非对吧,哎默认值是非,那怎么办?那这时候就不能这么写了,注意啊,不能传死顺了,我要传什么呢。
09:16
你看我写什么粘字,后边我是不是传了一个对象啊,对象你看啊,我来一个type,叫做一个死缀,这表什么意思呀?哎,那类型是死缀,注意这种写法和这种写法没区别啊,没区别,但是它有什么好处,它这里边传对象了,我是不是可以设置多个配置参数啊?哎,我可以再来deft default我们来一个,那这表什么意思?单的类型是string,默认值是什么?是女啊,默认值是女,那这样是不是更灵活一点啊?所以注意,如果你只需要配置类型,后边就写类型就完了,如果你需要配置是一个复杂内容,后边传什么呀,传部对象啊,好,那现在这个STEM就已经创建完毕了,简单吧,哎,其实并不难啊,并不难,好,那创建完了,然后呢,要注意有schemer能。
10:16
创造数据库还不能STEM仅仅是对我们数据库的一个约束,所以我们要想创建数据库,我还需要创建什么呢?哎,我还要通过我们这个STEM,诶来创建什么呀,我们的model啊,Model再强调一下,Model代表什么呢?哎,代表的是我们这个数据库中的什么呀?集合啊集合,那通过我们这个集合,通过model,哎才能什么呢?才能对我们这个数据库进行操作,简单理解,有了STEM就代表你已经有了数据库了,而你要想操作数据库文档,你是还得有集合呀,所以在这我们还得根据STEM去创建集合,也就是说这个model啊,但是这么说并不确切,但是我们这块叫model啊,叫model好,那怎么创建model,哎,文档里边非常清楚。
11:15
看到到了吗?它里边写了一个mongoose.model第一个传了这么一玩意儿,第二个传了这一玩意儿,第一个不认识,第二个认不认识,说SC啊,这是我们创建那个约束对象啊,所以人家在这给你写了,你看我这复制一下。把这语法粘过来,你看models.model第一个传的是一个model name,第二个传一个什么呀,Scheme,也就是说我们的什么呀,哎,约束的一个对象,那我们来看我这到底怎么整,我直接来一个,我还叫SQ,哎,Student model,注意model这块我就要用大写了,因为什么?因为模型代表的是一个集合,说白了我们要通过它去创建什么呀,创建对象的,你就记住它实际上是一个构造函数啊函数model用大写干用什么呀?小写啊小写,但你说我全用小写,全用大写也没啥事,但是呢,我们习惯问题啊,习号问题,Model用大写等于什么呢?等于一个models点一个model,那这model name是什么呢?
12:22
哎,集合的名字model name,就是我们要映射的这个集合名,集合名什么意思?那你这个东西是不是要跟数据库里边的集合进行映射呀?问题是什么呀?你要跟哪个集合映射吧,所以你跟谁映射,这就写谁的名字,那我这个明显是个学生的对吧?所以在这我就写一个student student,也就说我要跟STEM这个集合进行映射,然后第二个参数是什么,STEM什么意思?那你要跟这个集合进行映射,你用哪个模式对象去对这个集合进行约束呢?哎,就是用我们刚才创建的这个,懂这意思吧?哎,所以这就表示什么意思啊?哎,我要创建一个模型对象,这个模型对象和我数据库里的student这个集合进行映射,然后。
13:23
我用SQSTEM这个约束对这个模型进行约束,懂这意思吧,它是有关系的啊好模型也有了,我们这块来,我先停一下啊,我这先执行一下,我这一执行,我看看这时候它会不会创建,看看数据库里边我这一刷新,诶刷新有没有啊,没有,也就是说这个时候你创建完模型的时候,它是不是依然没有。创建的,那什么时候创建呀,哎,创建文档了,那注意了,模型有了,再往下的所有操作就都简单了,那我们先来试个什么呀。
14:04
我们来向数据库中来插入一个文档,怎么插s tu model,它有个方法叫做C,叫做create create什么意思呀,哎,创建创造,哎什么意思呀,创建一个文档,并且插入到我们那什么呀,数据库中啊,数据库中来,那我就直接写一个,那注意它需要两个参数。Create需要两个参数,第一个是什么呢?第一个我们叫做一个dock,第二个我们叫做一个function,是一个回调函数,回调函数里边第一个参数是一个什么呀?Error什么意思呀?第一个是你要插入的那个文档,第二个是一个回调函数,我们先写回调函数吧,来一个error,这如果要来一个if没有错,我们就来一个cancel.log,一个插入成功没出错是不是这门成功了,哎,成功了啊,保存好,那接下来我要插入,我这不能插入个空的吧,咱们是不是学点东西啊,哎,来想想学点什么呀,学生嘛,有几个属性啊,第一个name name来一个孙悟空,孙悟空,然后再来一个age age来一个18,还有JD啊,粘的来一个这个mail,感觉这一些不配套是吧,然后再来一个address address,来一个花果山,哎,是不OK了。
15:33
好,我们来看看行不行,保存来直接运行走stop and RA,因为我现在这个程序都在停着呢,他问我是不是重新运行啊,重新行stop and,诶,出现什么了,是不是插入成功了啊,问你这时候你说数据库里有没有,是不是必须得有啊,这回再没有是不是说不过去了?好在这选中我这一刷新走你monggoose test有没有,哎,有来点开我们这儿来看students是不是也有了,哎,直接在这来一个,哎,DB点一个students students点一个find,一直行,诶没切换student。
16:15
直行。是不是孙悟空已经已经进来了,哎,但是他给我们多了一个这个杠V,这个不用管它,它是默认添加的啊好,那现在数据是不是就经就已经插入成功了,哎,还还算简单吧,步骤都比较固定啊,把这几个步骤给他记一下,那这里边我们要先说一个问题,看这诶我刚才好像叫顿科呀,他这怎么叫牛顿斯啊。这是为什么?哎,注意我们的mongoose,哎,它会自动将我们这个集合名干嘛呀,变成复数啊,变成复数,那你说我这写students干嘛了,还变不变了就不变了啊,就不变了,所以注意它会自动看,如果它你是个单数,它就给你变成什么呀,复数,哎,那我们这块说了,如果你是个child,它干嘛呀,给你变成children,你是CT给你变成CT,你是单数就给你变成复数,你是复数就不管你了啊,就不管你了,所以它这自动给你变成一个什么呀复数,别觉得奇怪啊,它变了啊,它变了,然后这个数据就已经插入成功了,那到这儿我们是不是就已经将我们这个note和我们这个mango PB给它连通了啊,连通了啊,回顾一下流程,第一步连接数据库,没什么说的,这都是固定的步骤,第二一步我们要创建我们这个STEM对象,STEM对象创建起来也比较简单,就是指定一下几个字段,然后包括。
17:48
这类型当然也可以指定一些默认值啊,默认值然后呢,再往下,下边是我们这个创建模型,模型需要两个参数,一个是集合名,还有一个是约束对象,有了这个是不是可以创建模型了,哎,模型有了以后,我们就可以通过模型来操作这个数据库了,刚才你说哎,刚才我这写一个粘的,粘的我们是指一默认值啊,看着我不写啊,我换一个人,换个白骨精,白骨精呢,我们是16住在白骨洞,那我现在看有没有写粘点,没有写粘点,那你说我插入的时候会不会有。
18:24
哎,来看着啊,Star版的看数据库。F61执行有没有站点有female,为什么呀?哎,因为我在这指定了一个默认值啊,默认值好,那这个就是我们基本操作,主要说了两个东西,一个是sche,还有一个是我们这个Mo来停一下。
我来说两句