目录

1.创建MongoDB数据库实验环境

2.使用MongoShell脚本导入数据

3. 查询students集合,只返回一条数据

4. 根据你查询出来的记录的结构,使用你自己的数据,构造一个文档,并将这个文档写入students集合

5.  根据你自己的记录数据,查询比你长得高或者和你一样高的学生记录

6. 根据你自己的记录数据,查询体重和你相差不超过3kg的学生记录

7.  统计你所在专业的学生人数

8. 列出大数据专业所有课程的名称

9. 将你所在班级的所有同学标记为同班同学(增加一个新字段:{'关系':'同班同学'})

10. 找到你班上身高最高的3名同学,并删除这些记录


1.创建MongoDB数据库实验环境

要求:

- 服务器地址:localhost(127.0.0.1)

- 服务端口:27027

存储目录命名:你的姓名拼音首字母(比如:tgy)

- 日志文件:放在存储目录下,以mongod.log命名

记得去添加环境变量,添加完再继续往下

创建配置文件如下

 

storage:
  dbPath: D:\MongoDB\(名字缩写)\db#dbpath路径
  journal:
    enabled: true
  engine: mmapv1
systemLog:
  destination: file
  logAppend: true
  path: D:\MongoDB\(名字缩写)\mongod.log#log日志路径
net:
  port: 27027#端口号
  bindIp: 127.0.0.1
  maxIncomingConnections: 10000

然后打开你的cmd,输入以下命令使其生效

mongod --config=(这个配置文件的路径)

启动,在你的cmd里面输入

mongod --dbpath=D:\MongoDB\(你的名字缩写)\db --port=27027

然后去你的navicat里面创建一个mongodb连接,像这样

2.使用MongoShell脚本导入数据

GenerateStudents .js

通过外部文件查询导入,然后运行就行了,这里不演示了,不懂再问吧

3. 查询students集合,只返回一条数据

//选择当前数据库
use cqust;
//查看当前数据库包含的集合
show tables;
//查询集合中的一条数据
db.students.findOne();

4. 根据你查询出来的记录的结构,使用你自己的数据,构造一个文档,并将这个文档写入students集合

将内容复制过去,改一下就行了

//构建我的数据
var mydata={
    "sno": 20205201314,
    "name": "中意",
    "gender": 1,
    "body": {
        "height": 170,
        "weight": 50
    },
    "list": [
        4,
        5,
        4
    ],
    "phone": "19112404983",
    "role": "student",
    "major": "大数据",
    "grade": 2020,
    "class": 2,
    "courses": [
        {
            "course": "结构化数据存储与应用",
            "credit": 2,
            "score": 61
        }
    ]
};
//将我的数据插入students这个集合
db.students.insertOne(mydata);

 插入成功

5.  根据你自己的记录数据,查询比你长得高或者和你一样高的学生记录

//查询比我长得高的或一样高的学生记录
var query={"body.height":{$gte:170}};//查询条件
var projection={};//返回条件
db.students.find(query,projection);

 

6. 根据你自己的记录数据,查询体重和你相差不超过3kg的学生记录

//查询体重和我相差不超过3kg的学生记录
var query={$and:[{"body.weight":{$lte:53}},{"body.weight":{$gte:47}}]}//查询条件
var projection={}//返回条件
db.students.find(query,projection)

7.  统计你所在专业的学生人数

//统计我所在专业的人数
var query={"major":"大数据"}//查询条件
db.students.count(query)

8. 列出大数据专业所有课程的名称

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

9. 将你所在班级的所有同学标记为同班同学(增加一个新字段:{'关系':'同班同学'})

//将你所在班级的所有同学标记为同班同学(增加一个新字段:{'关系':'同班同学'})
var document={"关系":"同班同学"}
var query={$and:[{"class":2},{"grade":2020},{"major":"大数据"}]}
db.students.aggregate( [
{$match:query},//查询条件
{$set:document},//字段更新
{$match:query}//查询条件
] )

10.  找到你班上身高最高的3名同学,并删除这些记录

//找到你班上身高最高的3名同学,并删除这些记录
var query={$and:[{"class":2},{"grade":2020},{"major":"大数据"}]}
//db.students.aggregate({$match:query},
//{$sort:{"body.height":-1}})
data=db.students.aggregate({$match:query},
{$sort:{"body.height":-1}},//按照指定字段排序
{$limit:3},//只要前三个
{$project:{_id:1}}//取唯一标识_id(son也行)
).toArray()//转换为数组
db.students.deleteMany({$or:data})
//db.students.aggregate({$match:query},
//{$sort:{"body.height":-1}})

 删除前

删除成功

删除后

 后面可能会更新mongodb的安装(有时间的话),有问题的可以私信,因为自己所做,有些地方可能有错误,还请大家斧正,同样收到问题会实时更新的,最后求个赞。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐