MongoDB数据库基础(增删改查)

MongoDB增删改查
我就直接开门见山了,刚接触mongodb,记个笔记,有写的不对的路过的大佬可以指正哈。
使用的工具是:这两个,任意一个都OK.
在这里插入图片描述
在这里插入图片描述
增:
单条插入如下例 :
用insert()向students集合中添加:_id为1001,姓名为张三,年龄为20的文档。

//insert
db.students.insert({
    "_id":"1001",
   "name":"张三",
    "age":20})
//注意符号括号什么的都要是英文半角,并且要对应.

多条插入如下例 :

//insertMany
db.students.insertMany([
         {"_id":"1001","name":"程明","sex":"男","age":19,"major":"计算机应用技术","credits":52,score:92},
         {"_id":"1002","name":"刘萍","sex":"女","age":18,"major":"移动应用开发","credits":51,score:88},
         {"_id":"1003","name":"张静","sex":"女","age":20,"major":"计算机应用技术","credits":48,score:96})

save插入如下 :
用save()向students集合中添加:_id为1001,姓名为李白,年龄为30的文档。

db.students.save({
       "_id":"1001","name":"李白","age":30});
//(此处save相当于在原有基础上做改动),insert插入的时候必须确保这个的唯一标识符不存在即本例中的_id,但是save是在唯一标识符冲突的时候在原有基础上进行改写,insert是只能够插入

insert插入例 :
向students中添加:姓名-张三,性别-男,年龄-19,地址-天心区,父母-(姓名-张三爸爸,年龄-49,工作-务农,姓名-张三妈妈,年龄-45,工作-教师),所选课程-[Java,MySQL],成绩-78。

db.students.insert({
... "name":"张三",
... "sex":"男",
... "age":19,
... "address":"天心区",
... parent:[
... { "name":"张三爸爸","age":49,"job":"务农"},
... {"name":"张三妈妈","age":45,"job":"教师"}],
... "course":["java","MySQL“],
... "score":78})
//注意括号以及符号

*循环重复插入 :*例如下
向test集合添加10000条数据,数据的内容为女朋友1号-女朋友10000号

for(i=1;i<=10000;i++){
... db.test.insert({
... "name":"女朋友"+i+"号"})}

查 :
例: 查询students表中的内容。

//全局查询
db.students.find()

例: 使用命令查看students集合中姓名为尼古拉斯赵四的文档

//单条件查询
db.students.find({"name":"尼古拉斯赵四"})

例: 使用命令查找students集合中的第一条记录

//查询第一条
db.students.findOne()

例: 使用命令显示students集合中的文档数

//.count()方法查询数量
db.students.find().count()

例: 查询计算机应用技术和软件技术专业成绩大于80分的学生姓名、性别、专业和成绩。

//多条件关键字查询
db.students.find({"score":{$gt:80}})
//下一篇写关键字

例: 查询计算机应用技术专业成绩在90分以上(包含),年龄为19-20岁女生信息

//多条件查询
db.students.find({
... major:"计算机应用技术",
... score:{$gte:90},
... age:{$gte:19,$lte:20}
... ,sex:"女"
... })

例: 查询专业为计算机应用技术和移动应用开发的男生的学号、姓名、性别、专业和总学分。

//多条件查询并管理显示
db.students.find({$and:[
    {$or:[{major:"计算机应用技术"},
     {major:"移动应用开发"}]},
      { sex:"男"}]},
      {_id:1,name:1,sex:1,major:1,credits:1}      
    )

例: 查询岳麓区20岁学生的姓名、性别、年龄和协会信息,要求只显示加入的第二个和第三个协会

db.students.find({
    $and:[{address:"岳麓区"},{age:20}]},
    {name:1,sex:1,age:1,community:{$slice:[1,2]}})
    //slice关键字

例: 查询所有男生的姓名,性别,年龄信息,并且按照年龄的降序显示。

db.students.find({
    sex:"男"},{name:1,sex:1,age:1}).sort({age:-1})
    //类似例题中,,如果sort是1那就是升序

例 : 查询地址不在天心区和开福区的前三个学生信息。

db.students.find({
      $and:[{address:{$nin:["天心区","开福区"]}},
      {address:{$exists:true}}]}).limit(3)

例: 查询软件技术专业成绩在60分以下(包含),年龄为19-20岁女生信息(要求:要包含$where查询)。

db.students.find({
    $and:[{"$where":"this.score<=60"},
    {sex:"女"},
    {age:{$gte:19,$lte:20}}]})

例: 显示年龄的150倍大于工资的教师信息。
在这里插入图片描述
改:
例:使用$set修改器为姓名为于谦的记录添加一个爱好字段,于谦有三大爱好:抽烟,喝酒,烫头

db.users.update({"name":"于谦"},{$set:{"hobbies":["抽烟","喝酒","烫头"]}})

例:将所有年龄为19岁的学生成绩一律减少30分

db.students.update({"age":19},{$inc:{"score":-30}})

例: 删除“张三”的年龄、课程与成绩字段

db.students.update({"name":"张三"},{$unset:{"age":1,"course":1,"score":1}})

例:向“张三”添加课程C语言

db.students.update({"姓名":"张三"},{$push:{"course":"C语言"}})

例:向“王五”的课程追加多个元素:“点穴保健DIY”和“葵花宝典入门”。

//此处也可以使用pushAll关键字,但是在3.4版本之后push和pushall合并了
db.students.update({"name":"王五"},{$push:{"course":{$each:["点穴保健DIY","葵花宝典入门"]}}})

例: 向“王五”的课程追加多个元素:“装B技巧”和“Java”。【要求:插入的元素不能重复。提示: a d d T o S e t 和 addToSet和 addToSeteach】

db.students.update({“name”:”王五”},{$addToSet:{“course”:{$each:[“装B技巧”,”java”]}}})

例:只保留“王五”的后面三门课程。

db.students.update({“name”:”王五”},{$push:{“course”:{$each:[],$slice:-3}}})

例:删除“赵六”的最后一门课程

db.students.update({“name”:”赵六”},{$pop:{“course”:1}})

例:删除“赵六”的“MySQL”这门课程

db.students.update({"name":"赵六"},{$pull:{"course":"MySQL"}}))))

例:将所有成绩在80-90之间的学生等级grade设置为优秀,总学分加上0.5。

db.students.update({
    score:{$gte:80,$lte:90}},
    {$set:{grade:"优秀"},
     $inc:{credits:+0.5}}
    )

例: 将工资高于4500的男讲师的职称修改为副教授。

db.teachers.update({
     $and:[{salary:{$gt:4500}},
     {sex:"男"}]},{$set:{prof:"副教授"}})

例:将1号部门年龄小于30岁的女讲师的部门更新为3。
在这里插入图片描述
删:

例: 使用命令删除students集合中姓名为尼古拉斯赵四年龄为20的文档

db.students.remove({"name":"尼古拉斯赵四","age":20})

例:使用命令删除test集合中的所有文档

db.test.remove({})

例: 删除成绩不及格或者总学分小于45的学生

db.students.remove({
    $or:[{score:{$lt:60}},{credits:{$lt:45}}]
})

例:删除软件技术专业和移动应用开发专业成绩在60-70的男生

//对准括号
db.students.remove({
    $and:[{score:{$lte:70,$gte:60}},
    {$or:[{major:"软件技术"},
        {major:"移动应用开发" } ]}]})

例 :删除1号和2号部门,工资在3000-5000之间的,年龄小于35的教师信息。

db.teachers.remove({
     $and:[{$or:[{dept:1},{dept:2}]},
     {salary:{$gt:3000,$lt:5000}},{age:{$lt:35}}]})

基本上常用的一些增删改查操作的就这些了。

  • 3
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值