实验名称
MongoDB数据库的文档基本操作–增删改 实验目的 掌握MongoDB插入文档掌握MongoDB更新文档掌握MongoDB删除文档掌握MongoDB删除集合 实验背景
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。 实验原理
在 MongoDB 中,集合只有在内容插入后才会创建,MongoDB 使用insert() 或 save() 方法向集合中插入文档,使用 update() 和 save() 方法更新集合中的文档,使用remove()函数是用来移除集合中的数据。 实验环境
Ubuntu16.04
MongoDB3.4.23 建议课时
1课时 实验步骤
题目一:插入文档
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
db.COLLECTION_NAME.insert(document)
示例:向数据库student的stuinfo集合插入以下数据
1.启动mongoDB
1.使用数据库student
2.insert方法 向stuinfo 集合中插入单个文档 {_id:001,name:‘alice’,age:18}
3.save方法插入单个文档{_id:002,name:‘nancy’,age:19}
4.插入多个文档:{_id:003,name:‘harry’,age:18}, {_id:004,name:‘curry’,age:19}
文档插入完成后,使用find()查看集合数据,具体操作步骤如下图所示:
以上示例中stuinfo是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。
还可以可以先将文档定义为一个变量s,再进行插入:
操作结果如下图所示:
插入多条nancy的记录: {_id:006,name:‘nancy’,age:17},{_id:007,name:‘nancy’,age:21}
题目二:更新文档(区分update和save的区别)
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。
(1)update() 方法用于更新已存在的文档。语法格式如下:
db.collection.update(,,upsert,multi,writeConcern)
参数说明:
criteria : update的查询条件,类似sql update查询内where后面的。
objNew : update的对象和一些更新的操作符(如inc…)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
示例
通过 update() 方法来更新上述文档的姓名(name): 将姓名(name)为curry的文档 更新为了 .李四‘。
执行命令:
通过find()查看修改是否成功,具体操作步骤如下所示:
以上语句只会修改第一条发现的文档,如果要修改多条相同的文档,则需要设置 multi 参数为 true。
如将name为.nancy‘所有文档更新为.王五‘
操作结果如下图所示:
**(2)**save() 方法通过传入的文档来替换已有文档。语法格式如下:
db.collection.save(,{writeConcern:})
参数说明:
document : 文档数据。
writeConcern :可选,抛出异常的级别。
**示例:**替换 _id 为2的文档的数据,将这个文档的name替换为curry,age更新为20:
操作步骤如下图所示:
更多示例:
创建集合col,并生成多条记录{count:i,test2:false,test5:true}, 其中i的值为1到10 :
更新按条件查出来的第一条记录(将count>1 的记录中 test2的值更新为OK):
更新按条件查出来的全部条记录:(将count>3的记录中 test2的值更新为OK)
将count>14 的记录中 test5的值更新为OK,如果不存在需要update的记录,则添加一条记录:
更新按条件查出来的全部条记录(将count>1 的记录中count的值加1):
更新按条件查出来的第一条记录:(将count>10 的记录中count的值加1)
题目三:删除文档(注意区分remove和delete)
remove(),deleteOne() 和 deleteMany() 方法可以用来移除集合中的数据。
(1)删除集合col下全部文档
或
具体如下图所示
(2)删除指定条件的文档
删除集合stuinfo中name等于王五的全部文档:
删除 age等于 18 的一个文档:
步骤如图:
实验总结
该实验的主要内容是MongoDB的增删改方法的使用。掌握insert和save方法插入单条文档和插入多条文档以及update的参数设置。
理解掌握更新文档时update和save的区别,save是用新传入的文档替来替换已有文档。
理解掌握remove(),deleteOne() 和 deleteMany() 方法用来移除集合中的数据。
莫斯科,11月25日。俄罗斯政府将从储备金中拨出100亿卢布,用于支付与感染冠状病毒患者的医务人员和其他工人的费用。俄罗斯联邦财政部起草的...
莫斯科,11月24日.Soyuz-ST-A运载火箭将于周三被带到法属圭亚那库鲁国际机场的发射台。总经理n宣布了这一消息。 “在联盟-ST-A运载火箭...
在生活中,有些行为给我们留下了深刻的印象,比如男生向你耳朵吹气。那么这究竟是什么意思呢?下面,我们从多个角度进行分析。男生向我耳朵吹气是什么...
O型血的男人性功能强吗?性功能是每个男人都关心的话题,而血型被一些人认为与个人特质有一定关系。其中,O型血的男人受到了一定程度的关注。那么,O...
而且声音越来越大,我操这不会是胖子他们吧,真过瘾我听着听着就有感觉了,刘涵也听到了,我向刘涵那边挪了挪,这时刘涵直接转过身...