MongoDB中数据库的操作(增删改查)

举报
王小王-123 发表于 2021/12/10 23:43:35 2021/12/10
【摘要】 1.查询students集合,只返回一条数据。 db.students.findOne()db.students.find().limit(1)db.students.aggregate({$limit:1}) 2.根据你查询出来的记录的结构,使用你自己的数据,构造一个文档,并将这个文档写入students集合。 var myse...

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


  
  1. db.students.findOne()
  2. db.students.find().limit(1)
  3. db.students.aggregate({$limit:1})

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


  
  1. var myself = {
  2. "name": "王小王-123",
  3. "gender": 1,
  4. "body": {
  5. "height": 166,
  6. "weight": 66
  7. },
  8. "phone": "1666666666",
  9. "sno": 2019814,
  10. "major": "应用数学",
  11. "grade": 2019,
  12. "class": 2,
  13. "courses": [
  14. {
  15. "course": "分布式数据库原理与应用",
  16. "credit": 4,
  17. "score": 99
  18. }
  19. ]
  20. }
  21. db.students.insert(myself)

3.根据你自己的记录数据,查询比你长得高或者和你一样高的学生记录  (比较运算符)


  
  1. var 我的身高 = 166
  2. var 查询条件 = {"body.height":{$gte:我的身高}}
  3. db.students.find(查询条件)

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


  
  1. var 上限 = 66+2
  2. var 下限 = 66-2
  3. var 查询条件 = {"body.weight":{$gte:下限,$lte:上限}}
  4. db.students.find(查询条件)

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

db.students.count({major:"应用数学"})
 

6.列出所有课程的名称

db.students.distinct("courses.course")
 

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


  
  1. var 同班同学 = {"major":"应用数学","grade":2019,"class":2}
  2. var 同班同学不包括我 = {"major":"应用数学","grade":2019,"class":2,"sno":{$ne:2019814}}
  3. var 同班同学不包括我们 = {"major":"应用数学","grade":2019,"class":2,"sno":{$nin:[2019814,2019813]}}
  4. db.students.find(同班同学)
  5. var 添加字段 = {$set:{'关系':'同班同学'}}
  6. db.students.updateMany(同班同学,添加字段)
  7. db.students.find({'关系':'同班同学'})

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


  
  1. var 同班同学 = {"major":"应用数学","grade":2019,"class":2}
  2. var 同班同学 = {'关系':'同班同学'} //7题的结果
  3. var 找同班同学 = {$match:同班同学}
  4. var 按身高从大到校排序 = {$sort:{"body.height":-1}}
  5. var 取头三个 = {$limit:3}
  6. var res = db.students.aggregate([找同班同学,按身高从大到校排序,取头三个])
  7. db.students.delete({sno:{$in:[2016000242,2016000181,17059434737]}})

这样的命令比较的不够智能,所以我重写了一个JavaScript代码进行迭代删除,不需要自己呆板的获取前面三个数据的名称,如下:


  
  1. //首先找到你班上身高最高的3名同学:
  2. var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
  3. db.students.find(查询条件).sort({'body.height':-1}).limit(3)
  4. //循环删除
  5. var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
  6. var 返回结果 =db.students.find(查询条件,{_id:0,name:1}).sort({'body.height':-1}).limit(3)
  7. for(var i=0; i<返回结果.length(); i++) {
  8. db.students.remove(返回结果[i])
  9. print(返回结果[i]);
  10. };
  11. //再次查询,记录已删除
  12. var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
  13. db.students.find(查询条件).sort({'body.height':-1}).limit(3)

每文一语

没有一蹴而就的成功,只有默默坚持的渐进

文章来源: wxw-123.blog.csdn.net,作者:王小王-123,版权归原作者所有,如需转载,请联系作者。

原文链接:wxw-123.blog.csdn.net/article/details/121852903

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。