00:00
我们接下来开始。呃,接着来说我们这个数据库的操作,那刚才我们说了四种操作,叫做增删改查,对吧?来增删改查,那我们开始来详细的说一下每种操作,我们先来说什么呢?先来说我们这个增加。哎,叫做添加叫什么呢?谁在这写了,哎叫做像我们这个数U这个就是小了是吧,那当然这个工具的一个特点就是中文,中文不是小不小的事儿,待会调大了,调大了好调,但是这个中文整的特别难看啊,给中文调特别难看,我来看搁哪调啊。Options啊options options里边找到我们有一个这个SHESHE的时候一个fo fo默认这字体,我们换一个字体,换个雅黑吧。微软雅黑,然后字体调大一点,调成一个16个,比如说调大了,但是它其实这玩意儿整完了,它这字儿吧,Coco是吧,哎coco那那那哥们这字好像还我倒没用过这个,这都没没咋用过,不知道他这个字好不好看。
01:16
对,他看这个星号挺好看的是吧,这是我们增加写一个。这这不是,这你看着比例还对是吧,比例还对,但是也小,这个哪调。应该是prefer啊,然后有一个。Background。哦,在这在这儿,现在跑在这儿,他这有一个这个edit edit这个放我们选一个吧,选一个这就比较正常了是吧。微软雅黑常规的这来一个石榴一确定OK。
02:05
他这儿没改,改的是这儿的是吧。我先不找他了是吧,待会再找找他,反正肯定有地能改啊,有的有地方能改,待会再找他吧,因为这东西用的不多,待会我们再去研究这个问题啊,我们还是拿这个来用吧,啊拿这个来使用,哎,我们来说第一个叫做向数据库中插入我们这个文档啊,我们叫什么呀?叫做一个insert啊插入文档,那我们来看怎么做,在这直接看文档S,第一个就是insert document呀,哎,Inser document档,那刚才我们展示的第一个方法叫什么呀?这关荣啊叫什么呀?是不是就叫做ins色的呀,哎,就叫做in色的啊来哎叫做一个insert DB点一个我这来一个尖块Co collection点一个这个insert啊insert,那这个东西有什么作用,这个方法它的作用是什么呢?哎,像我们这个叫做集合中,哎插入一个或多个文档啊向集合中插入一个或多个文档,那咱们刚才插入一个我们是不是已经做过了,哎直接来一个DB点一个这个,呃,To students点一个这个insert啊insert,然后这直接传一个文档,来一个name name来一个猪八戒,猪八戒,然后age来一个28,然后这银迪啊张来一个南,我们写简单一点,然后点F61执行啊。
03:38
已执行是不是又新插入了一个呀?哎,所以你sir可以插入一个或多数文档,然后在这直接DBS点一个find查一下啊,插询一下F6的执行是不是现在有两个了,我们切换到表格式图,一共有两个,第一个是孙悟空,第二个是猪八戒啊那这是插入一个,插入一个是不是比较简单呀,直接写一个文档啊,写一个J字是不是行了呀,接就行了,那这个其实我们在这就可以当成是一个普通的什么呀一下,因为它是不是个合法的接算格式,不是,如果合法的话,你应该在前面是加什么呀?哎,加双引号这才应该是合法的,但是那个有点太麻烦了,所以在这儿我们就给它省略了啊,把它省略了,然后这是插入一个,那我怎么插多个呀?
04:26
怎么插多个呀?哎,逗号吗?哎,不是,诶sus点一个insert插入一个,我直接传一个对象插入多个呢,我需要传一个数组啊,需要传一个数组,然后在这数组里干嘛呢?我要放这个对象来我这复制一个,我可以同时传多个。这是一个两个三个,是不是一个数组啊,数组里放了三个对象来换解人,这个猪八戒,然了以后我们这个沙和尚,沙和尚38男,然后呢,白骨精白骨精16女,然后还有谁呢?还有这个蜘蛛精,蜘蛛精14女比较年轻是吧?哎来现在我们选中啊执行我直接选中这三行,然后点这玩意儿啊一点哈,诶你看新插入几个,哎,三个啊,新插入三个数据,然后我在这一查询走,你是不是诶沙和尚白骨精蜘蛛精都进来了,哎都进来了啊,所以注意ins色可以插入一个或多个,一个就传一个这个对象,多个就传一个数组就完事了啊就完事了,然后这里边我们其实有些地方都很明白了,Nameh是不都都是我们指定的呀。
05:47
但是我们会发现它多了一个叫做object,多了一个属性叫下划线ID,而这个下划线ID属性还很奇怪,是不是一个object的ID啊?那这是哪来的呀?这哪来的呀?这是我们mango DB数据库自动给我们添加的啊。来说一下,当我们向数据库或者集合中集合中插入文档时,如果没有给我们这个文档指定我们这个下划线ID这个属性,则我们这个mango DB,我们的数据库会什么呢?会自动为我们这个文档添加啊,自动为文档添加下划线ID,那这个东西是干嘛的?该属性用来干嘛呢?作为我们这个文档的一个唯一标识啊,唯一标识什么意思?为了用通过这个ID来确保我这个文档是什么呀,是唯一的,就像我们这个。
06:48
什么呀,人的那个身份证号一样,他干嘛呀,它是不可重复的,必须就是确保什么呀,唯一的不重复的,那他怎么确保唯一的这个玩意儿,它是干嘛呀,它是根据我们这个时间戳来生成的,哎,时间戳来生成的,基本上每毫秒都有一个,每毫秒一个,所以基本上是不会重复的啊,那这块我们来看我能不能自已生成啊,哎,其实你只需要调一个object ID,然后以执行是不是生成一个美调干嘛。
07:17
是不是就生成一个,你看一不一样啊。不一样啊,不一样,这个基本上是不会出现重复的情况,为什么?因为它是根据时间戳,时间戳是多少,每一毫秒是不是一个呀,每毫秒一个,还有什么呢?还有我们的机器码,什么叫机器码,机器我硬件它会有一个那种,有点像那种麦克值式一样,它会自动算一个机械码,这两只加一块干嘛呀,计算确保这个东西干嘛呀,不重复啊,不重复,所以它是一个唯一的一个标识,那问题来了,为什么要整这玩意儿?我觉得这破玩意儿老难看了是吧,老难看了,为什么要整它呀?哎,作用很明显,就是确保什么呀,数据唯一,就是确保我这个文档的一个唯一性,为什么要确保唯一性,诶诶就是因为我们现在咱们举个例子啊,这个作用有很多,举个例子,我们在工作的时候一定注意,工作的时候我们会有两个环境,一个是我们开发环境,还有一个是什么呀,我们的生产环境,开发环境是什么呀?我们测试的,我们在开发的时候进行测试的,生产环境呢?是什么呀?是给用户去用的,比如说用户就真的是我们的产品上线了,部署在什么呀,生产环境里,那注意了,我们在开发的时候,我会不会直接在生产环境里测试啊,很少有这样的公司啊,很少,但是不是说绝对没有,很少有,为什么?因为太危险了,你有代码稍微写错一点,那是不是用户直接就看见了,所以一般不会在生产环境里测试,会在开发环境里测试好了再部署到什么呀,生产环境里,那所以我们会有。
08:49
两套数据库,甚至说多套数据库,一个是开发的,还有一个是生产的,那我们再把项目部署到生产环境里边,就面临一些问题,什么问题呢?我在开发环境里边可能有一些数据,我需要干嘛呢?我需要给它导入到生产环境里,能懂我意思吗?导到生产环境里,但是有可能什么呢?我这两个数据库的数据是不是有重的呀?有重的会出现一些问题,什么问题呢?可能我这个数据。
09:16
导不进去,或者导进去后边把前面给覆盖了,或者压根就不行,就给你报错,能能懂这意思吧,哎,所以干嘛呢,我们给每一个文档都添加一个ID属性,只要ID属性不同,我们就认为它是什么,它是不同的数据,那这样是不是可以确保我们的数据的唯一性啊,所以注意啊,它的作用就是确保我们的数据的一个什么呀,唯一性,那这个还是比较方便的,在其他语言理还没有太这么方便一个东西啊,这方便西那同学说老师我不喜欢他这个,不喜欢他这个怎么办?哎,你可以自己指定,你说我不要他这个,你来一个,自己来一个下划线ID,比如说我来一个哈,自己来一个行不行。
10:00
来直接选中我们这一直行。插进去了吧,然后后我们来查询一下,直接调一下find,你会发现它还有没有给我生成object的ID没有,它是不是变成变成hello了呀,所以注意为什么没有了,因为我指定了,他是就不给我自动添加了,哎,所以注意这个ID属性,我们也可以自己指定下划线ID,我们可以什么呢?可以自己指定啊,自己指定如果什么呢?如果我们指定了什么呢?哎,我们的数据库就不会再添加了,不会被添加了,但是注意你自己指定就带来什么问题,如果自己指定我们这个下划线ID也必须。确保它的一个唯一唯一性,也就是说这个东西的唯一需要你自己去设置,那我们想想是不是有点麻烦呀,有点麻烦,所以这块我们建议干嘛呀,你就不要自己生成了,就用它这个什么自带这个啊,我们就不要自己去加这个ID了啊好,这个是我们说的一个insert啊,Insert它可以添加一个或多个,然后我们来看文档,在这insert document下边有一个叫做inser的method的,这里边可以看到的是我们所有跟我们这个插入相关的方法,一个叫做inser的one,还有一个做inser的many,这两个方法一看名字是不是就知道什么意思啊,哎,Insert one叫插入什么呀,一个。
11:39
然后还有一个叫做insert啊many叫做插入多,这是我们这个插入一个文档对象,这是什么呢?这是插入呃多个文档对象,说白了这两个方法是干嘛的,是把这个方法进行了什么呀,拆分这个两这个方法等于是这两个一个合体inser曼特点只能插一个,你说我传个数组行不行不行啊,只能传一个文档,而这insert many必须得传什么,必须得传数组,数组里有一个对象,你得传数组啊,应该传数组,所以这两个就是什么呀,就是我们它的一个这个拆开了啊,拆开了本质上没有什么区别,那同学可能会觉得那这东西是不是有点麻烦呀。
12:25
为什么还要分出这两种,我都用iner不就行了吗?都用iner行不行?没问题啊,没问题,但是用inser有跟他们俩比有一个小的区别,什么区别呢?这两个调用起来看起来更清晰,为什么更清晰啊,我一用隐色我就很明确,我要插入一个,用隐色many我很明确,我就插入什么呀,多个,而你调隐色的我说不明确到底是插入一个还是多个呀,所以这两个语义上看来比较明确,所以呢,用哪个都行啊,用哪个都行,这里边我们要强调一下,强调一下这个问题啊,刚才这儿还没写,我看看啊,他这没写,还得往上看,在这儿写了,哎,在这写的是我们这个insert y对吧?Insert one这上面写了new in words3.2,哎,然后下边我看insert many写没写啊。
13:15
Insert many,在这也是new in worth 3.2,说白了这两个方法都是什么?在3.2以后新加入的啊,新加入的3.2以前的版本干嘛呀不支持,还有一些3.2版本的方法,在我们六在32位系统里干嘛呀不支持,所以32位同学你在测的时候你要注意了,看看支不支持,如果不支持,你先用隐ER来代替64位没啥问题,都支持,这是3.2版本以后新加的,为什么加入,就是为了让它体现出这个语义干嘛呀更加清晰啊,更加清晰,待会我来自己写一下这几个方法,然后再来看我们官方文档啊,文档它这里边是不是都会有一些这种示例啊,所以这块你要不会用的话,直接参考一下文档,它的例子写的还是挺好的,自己参考一下,而且注意在我们每一个文档的页面里,它都给我们提供这么一个黑色窗口,这是什么?人家告诉你mango web shell,这是什么东西。这个实际上就是我们这。
14:15
的官方网站给我们提供的一个是一个,相当于是一个虚拟机,在这可以对我们这个mango DB的操作进行一个练习,比如说人家写了click to connect,我这一点现在干嘛了,就正在连接我们这芒GODB数据库,那现在出来这个表什么了,已经连上了,在这儿你可以用我们所有的芒GODB的指令,哎,Show DB,诶写错了,DBS啥玩意儿,DBS是不是也能看到啊?然后来柚子一个test是不是也可以执行啊,然后直接dbstuss点一个insert,我们来写一个name,来一个这个孙悟空,然后一执行走,你是不是也能查出啊,DB点一个sts,点一个find,一查询是不是也能查到啊,包括也会有这个object的ID,所以在这你也可以不方便装用的时候,你可以在这进行一些测试啊,进行测。
15:15
不是好,那这是我们说的一个插入,主要说了三个方法啊,叫做一个insert insert one,还有insert many啊insert来听一听。
我来说两句