0
点赞
收藏
分享

微信扫一扫

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

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

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

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

var myself = {
"name": "王小王-123",
"gender": 1,
"body": {
"height": 166,
"weight": 66
},
"phone": "1666666666",
"sno": 2019814,
"major": "应用数学",
"grade": 2019,
"class": 2,
"courses": [
{
"course": "分布式数据库原理与应用",
"credit": 4,
"score": 99
}
]
}
db.students.insert(myself)

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

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

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

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

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

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

6.列出所有课程的名称

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

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

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

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

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

db.students.delete({sno:{$in:[2016000242,2016000181,17059434737]}})

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

//首先找到你班上身高最高的3名同学:
var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
db.students.find(查询条件).sort({'body.height':-1}).limit(3)

//循环删除
var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
var 返回结果 =db.students.find(查询条件,{_id:0,name:1}).sort({'body.height':-1}).limit(3)
for(var i=0; i<返回结果.length(); i++) {
db.students.remove(返回结果[i])
print(返回结果[i]);
};

//再次查询,记录已删除
var 查询条件={"major": "应用数学","grade": 2019,"class": 2}
db.students.find(查询条件).sort({'body.height':-1}).limit(3)

每文一语

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


举报

相关推荐

0 条评论