目录
实验目的和要求
实验目的:
要求:
实验环境
实验内容与过程
1、实验内容:
2、关键代码
3、流程图
实验结果与分析
实验结果:
结果分析:
实验心得
实验目的和要求
实验目的:
1. 安装Windows版MongoDB
2. 使用MongoDB对数据进行增删改查操作
3. 比较有无索引时的查询性能
要求:
1. 提交代码
2. 提交执行结果截图
3. 提交电子版实验报告
实验环境
操作系统:Windows11
Mongodb
实验内容与过程
1、实验内容:
题目1:安装Windows版MongoDB
1.安装MongoDB(任意版本)
2.在环境变量中添加MongoDB安装路径
3.创建MongoDB的Windows服务,服务名为MongoDB
4.设置Windows服务为【自动】启动
5.使用mongod命令启动服务
6.使用mongo命令启动shell窗口
题目2:对数据进行增删改查操作
1.创建一个数据库
2.创建一个集合
3.插入多条文档记录到集合中
4.修改一个文档的全部内容
5.对多个文档同一字段内容进行修改
6.查询数据库中满足指定条件的文档
题目3:比较有无索引时查询性能
1. 在集合中插入1000个文档,执行find.explain()命令,记录分析结果
2. 对文档中的一个字段创建索引,对该字段进行find.explain()命令,记录分析结果;
3. 删除多余文档,保留200个文档,对创建索引字段执行find.explain()命令,记录分析结果
4. 在此基础上删除建立的索引,执行find.explain()命令,记录分析结果
5. 对以上执行结果惊醒统计,制出统计分析比较表,说明比较结论
2、关键代码
>db.goodMongo.insert(
[
{ item: "小学生教材",name:"《小学一年级语文(上册)》",price:12},
{ item: "初中生教材",name:"《初中一年级语文(上册)》",price:15},
{ item: "高中生教材",name:"《高中一年级语文(上册)》",price:20},
{ item: "外语教材",name:"《英语全解
ABC(五年级上)》",price:30}
])
db.goodMongo.insert(
{name:"<c语言>",
bookprice:33.2,
adddate:2017-10-1,
allow:true,
baseinf:{ISBN:183838388,press:"清华大学出版社"},
tags:["good","book","it","Program"]
})
db.goodMongo.find(
{name:"《C语言编程》"},
{name:1,price:1,_id:0}) //0或false不显示指定字段,1或true显示指定字段
user goodsdb
db.goodMongo.insert(
{title:"商品购物单1"
,amount:35,
detail:[{name:"苹果",price:22},{name:"面粉",price:18}]
})
db.goodMongo.update({title:"商品购物单1"},{$set:{title:"商品购物单2"}}) //改订单名称
db.goodMongo.find().pretty()
document=({name:"《C语言编程》",price:32})//document为变量名
db.goodMongo.insert(document)
3、流程图

实验结果与分析
实验结果:






结果分析:
实验结果与预期相符,实验成功。
成功地安装了MongoDB,并将其配置为Windows服务,确保了服务的自动启动。通过使用mongod和mongo命令,我成功地启动了MongoDB服务和shell窗口。这为后续的操作提供了必要的环境。
通过对比查询分析结果,可以明显看到有索引时的查询性能明显优于无索引时。索引的使用显著提高了查询效率,特别是在大规模数据的情况下。然而,索引并非没有代价,创建和维护索引会占用一定的系统资源,因此在具体应用中需要权衡使用。
在实验中,我注意到创建索引后查询性能的提升主要体现在大规模数据集上。对于小规模数据,索引可能并不会带来显著的性能提升,而且索引的维护成本可能超过了性能提升的价值。
实验心得
在完成这个实验的过程中,我学会了如何在Windows系统上安装MongoDB。通过按照指导,我成功地完成了安装步骤,包括将MongoDB添加到环境变量并创建了一个Windows服务。这个过程让我对MongoDB的安装和配置有了更清晰的了解。
我学习了MongoDB的基本增删改查操作。我创建了数据库和集合,插入了多条文档记录,并成功地进行了文档内容的修改和字段内容的批量修改。这些操作让我熟悉了MongoDB的基本数据管理功能。
通过插入大量文档并记录查询分析结果,我能够清晰地对比有无索引时的查询效率。创建索引后,查询性能得到了显著提升,尤其是在大量数据的情况下。这个比较让我深入了解了索引对数据库查询效率的重要性。
在实验过程中,我遇到了一些挑战,特别是在索引的创建和删除过程中。通过仔细阅读文档和尝试不同的命令,我成功地解决了这些问题。这让我更加熟悉了MongoDB的管理和优化方法。
总的来说,这个实验让我对MongoDB有了更全面的认识,从安装配置到基本操作和性能优化都有所涉及。这些技能对于今后处理大规模数据和数据库管理都将是非常有用的。希望能够继续深入学习和应用这些知识,为未来的工作打下坚实的基础。

















暂无评论内容