mongodb的安装 见链接:mongodb安装
1. 创建MongoDB数据库实验环境 要求:
- 服务器地址:localhost(127.0.0.1)
- 服务端口:27027
- 存储目录命名:你的姓名拼音首字母
- 日志文件:放在存储目录下,以mongod.log命名
在CMD管理员运行:
// 创建目录
mkdir D:\xpc\db
// 启动+配置环境
start "MongoDBServers" mongod --dbpath=D:\xpc\db --bind_ip=127.0.0.1 --port=27027 --logpath=D:\xpc\db\mongod.log

2. 导入数据 实验数据
链接:https://pan.baidu.com/s/1MpPZzRLH5aho1SRvIZ4bFA?pwd=79a1 提取码:79a1
2.1 在cmd导入运行该js文件:
mongo --host=127.0.0.1 --port=27027 C:\Users\26036\Desktop\GenerateStudents.js
mongo --host=127.0.0.1 --port=27027
show dbs
 运行成功。
2.2 navicat打开外部文件: navicat测试连接  打开外部查询,找到js文件并打开:  3. 查询students集合,只返回一条数据。 先use数据库
use db
db.students.findOne()
db.students.find().limit(1)
db.students.aggregate({$limit:1})
 4. 根据你查询出来的记录的结构,使用你自己的数据,构造一个文档,并将这个文档写入students集合。
// 根据你查询出来的记录的结构,使用你自己的数据,构造一个文档,并将这个文档写入students集合。
var myself = {
"name": "小趴菜",
"gender": 1,
"body": {
"height": 170,
"weight": 57
},
"phone": "1666666666",
"sno": 2020000000,
"major": "大数据",
"grade": 2020,
"class": 3,
"courses": [
{
"course": "分布式数据库原理与应用",
"credit": 4,
"score": 99
}
]
}
db.students.insert(myself)
db.students.findOne(myself)

5. 根据你自己的记录数据,查询比你长得高或者和你一样高的学生记录
// 1根据你自己的记录数据,查询比你长得高或者和你一样高的学生记录
var 我的身高 = 170
var 查询条件 = {"body.height":{$gte:我的身高}}
var 返回字段 = {_id:0,name:1,"body.height":1};
db.students.find(查询条件,返回字段)
// 2
var 查询条件 = {$match:{"body.height":{$gte:170}}}
var 返回字段 = {$project:{_id:0,"姓名":"$name","身高":"$body.height"}}
var 步骤列表 = [查询条件,返回字段]
db.students.aggregate(步骤列表)
 6. 根据你自己的记录数据,查询体重和你相差不超过3kg的学生记录
// 根据你自己的记录数据,查询体重和你相差不超过3kg的学生记录
//1
var 上限 = 57+2
var 下限 = 57-2
var 查询条件 = {"body.weight":{$gte:下限,$lte:上限}}
var 返回字段 = {_id:0,name:1,"body.weight":1};
db.students.find(查询条件,返回字段)
//2
var 查询条件 = {$match:{"body.weight":{$gte:55,$lte:59}}}
var 返回字段 = {$project:{_id:0,"姓名":"$name","身高":"$body.weight"}}
var 步骤列表 = [查询条件,返回字段]
db.students.aggregate(步骤列表)
 7. 统计你所在专业的学生人数
//统计你所在专业的学生人数
db.students.count({"major":"大数据"})

8. 列出大数据专业所有课程的名称
//列出大数据专业所有课程的名称
db.students.distinct("courses.course",{"major":"大数据"})

9. 将你所在班级的所有同学标记为同班同学(增加一个新字段:{‘关系’:‘同班同学’})
//将你所在班级的所有同学标记为同班同学(增加一个新字段:{'关系':'同班同学'})
// 1
var 查询条件 = {$match:{"major":"大数据","grade":2020,"class":3,"sno":{$ne:2020000000}}}
var 返回字段 = {$project:{_id:0,"姓名":"$name","专业":"$major","年级":"$grade","班级":"$class","关系":"同班同学"}}
var 步骤列表 = [查询条件,返回字段]
db.students.aggregate(步骤列表)
// 2
var 不包括自己 = {"major":"大数据","grade":2020,"class":3,"sno":{$ne:2020000000}}
db.students.find(不包括自己)
var 添加字段 = {$set:{"关系":"同班同学"}}
db.students.updateMany(不包括自己,添加字段)
var 返回字段 = {_id:0,name:1,major:1,grade:1,class:1,"关系":1}
db.students.find(不包括自己,返回字段)
 10. 找到你班上身高最高的3名同学,并删除这些记录
//找到你班上身高最高的3名同学,并删除这些记录
var 查询条件 = {$match:{"major":"大数据","grade":2020,"class":3}}
var 返回字段 = {$project:{_id:0,sno:1,"姓名":"$name","专业":"$major","年级":"$grade","班级":"$class","身高":"$body.height"}}
var 排序高到低 = {$sort:{"身高":-1}}
var 取最高3名 = {$limit:3}
var 步骤列表 = [查询条件,返回字段,排序高到低,取最高3名]
db.students.aggregate(步骤列表)
//查找sno手动删除(这里的sno可能每个人不一样,要前面筛选处在删除对应的)
db.students.deleteMany({sno:{$in:[2020000992,2020000924,2020000457]}})
 删除 
|