前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二、MongoDB基本操作及增删改查

二、MongoDB基本操作及增删改查

作者头像
Dreamy.TZK
发布2020-07-09 15:42:22
1.7K0
发布2020-07-09 15:42:22
举报

基本操作

登陆数据库

mongo

查看数据库

语法

show databases;
image-20200708135132816
image-20200708135132816

选择数据库

use 数据库名
image-20200708135204173
image-20200708135204173

如果切换到一个没有的数据库,例如use admin2,那么会隐式创建这个数据库。(后期当该数据库有数据时,系统自动创建)

use admin2
image-20200708135402830
image-20200708135402830

查看集合

show collections
image-20200708135654724
image-20200708135654724

创建集合

db.createCollection('集合名')
image-20200708135818996
image-20200708135818996

删除集合

db.集合名.drop()
image-20200708135904893
image-20200708135904893

删除数据库

  1. 通过use语法选择数据
  2. 通过db.dropDataBase()删除数据库
image-20200708140359164
image-20200708140359164

增删改查

C增

db.集合名.insert(JSON数据)

如果集合存在,那么直接插入数据。如果集合不存在,那么会隐式创建。

在test2数据库的c1集合中插入数据(姓名叫webopenfather年龄18岁) use test2 db.c1.insert({uname:"webopenfather",age:18})

  • 数据库和集合不存在都隐式创建
  • 对象的键统一不加引号(方便看),但是查看集合数据时系统会自动加
  • mongodb会给每条数据增加一个全球唯一的_id
image-20200708141215126
image-20200708141215126
  1. _id键的组成
1584876662100
1584876662100
  1. 自己增加_id 可以,只需要给插入的JSON数据增加_id键即可覆盖(但实战强烈不推荐) db.c1.insert({_id:1, uname:"webopenfather", age:18})
image-20200708141526348
image-20200708141526348
  1. 一次性插入多条数据 传递数据,数组中写一个个JSON数据即可。 db.c1.insert([ {uname:"z3", age:3}, {uname:"z4", age:4}, {uname:"w5", age:5} ])
image-20200708141643413
image-20200708141643413
  1. 快速插入10条数据 由于mongodb底层使用JS引擎实现的,所以支持部分js语法。因此:可以写for循环 for (var i=1; i<=10; i++) { db.c2.insert({uanme: "a"+i, age: i}) }
image-20200708142047091
image-20200708142047091

R查询文档

db.集合名.find(条件[,查询的列])

条件

写法

查询所有的数据

{}或者不写

查询age=6的数据

{age:6}

既要age=6又要性别=男

{age:6,sex:'男'}

查询的列(可选参数)

写法

查询全部列(字段)

不写

只显示age列(字段)

{age:1}

除了age列(字段)都显示

{age:0}

其他语法

db.集合名.find({
            键:{运算符:值}
            })

运算符

作用

$gt

大于

$gte

大于等于

$lt

小于

$lte

小于等于

$ne

不等于

$in

in

$nin

not in

实例练习
  1. 查询所有数据 db.c1.find()
1584879409036
1584879409036

系统的_id无论如何都会存在

  1. 查询age大于5的数据 db.c1.find({age:{$gt:5}})
image-20200708143634776
image-20200708143634776
  1. 查询年龄是5岁、8岁、10岁的数据 db.c2.find({age:{$in:[5,8,10]}})
image-20200708144003354
image-20200708144003354
  1. 只看年龄列,或者年龄以外的列
image-20200708144049382
image-20200708144049382

U修改文档

db.集合名.update(条件,新数据[是否新增,是否修改多条,])
  • 新数据此数据需要使用修改器,如果不使用,那么会将新数据替换原来的数据。1db.集合名.update(条件,{修改器:{键:值}}[是否新增,是否修改多条,])修改器作用inc递增rename重命名列set修改列值unset删除列
  • 是否新增 指条件匹配不到数据则插入(true是插入,false否不插入默认) db.c3.update({uname:"zs30"},{$set:{age:30}},true)
image-20200708151113714
image-20200708151113714
  • 是否修改多条 指将匹配成功的数据都修改(true是,false否默认) db.c3.update({uname:"zs2"},{$set:{age:30}},false,true)
image-20200708151328323
image-20200708151328323
实例练习

准备工作

use test2;
for(var i = 1; i<= 10; i++){
	db.c3.insert( {"uname":"zs"+i,"age":i} );
}
  1. {uname:"zs1"}改为{uname:"zs2"} db.c3.update({uname:"zs1"},{$set:{uname:"zs2"}})
image-20200708145408835
image-20200708145408835
  1. {uname:"zs10"}的年龄加2岁或减2岁 db.c3.update({uname:"zs10"},{$inc:{age:2}})
image-20200708145752429
image-20200708145752429

递减只需要将2改为-2即可。

  1. 综合练习插入数据:db.c4.insert( {uname:"神龙教主",age:888,who:"男",other:"非国人"});需求:uname改成 webopenfather可以使用修改器renameother删除可以使用修改器unset123456db.c4.update({uname:'神龙教主'}, {set:{uname:'webopenfather'}, inc:{age:111}, rename:{who:"sex"},

删除文档

db.集合名.remove(条件[,是否删除一条])
  • 是否删除一条 true:是(删除的数据为第一条)
image-20200708151712548
image-20200708151712548

false:否

db.c3.remove({uname:"zs3"})
image-20200708151920899
image-20200708151920899

总结

高级开发攻城狮统称:所有数据库都需要增删改查CURD标识

MongoDB删除语法:remove

增Create

db.集合名.insert(JSON数据)

删Delete

db.集合名.remove(条件 [,是否删除一条true是false否默认])

也就是默认删除多条

改Update

db.集合名.update(条件, 新数据  [,是否新增,是否修改多条])

升级语法db.集合名.update(条件,{修改器:{键:值}})

查Read

db.集合名.find(条件 [,查询的列])
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本操作
    • 查看数据库
      • 选择数据库
        • 查看集合
          • 创建集合
            • 删除集合
              • 删除数据库
              • 增删改查
                • C增
                  • R查询文档
                    • 实例练习
                  • U修改文档
                    • 实例练习
                  • 删除文档
                  • 总结
                  相关产品与服务
                  数据库
                  云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档