mongodb修改数据语句_MongoDB之增删改查

简介

MongoDB是NoSQL非关系型,文件型数据库

数据存储

Mysql:

id name age sp wq

1 孙悟空 99999 null 定海神针

2 沙悟净 99998 和尚同款项链 null

Mongodb:

{

id:1,

name:孙悟空,

age:99999,

wq:定海神针,

ts:金箍,

fs:虎皮裙,红丝袜,长筒靴

hobby:['铁扇公主','紫霞','晶晶']

skill:[

{

name:'火眼金睛',

content:'透视',

},{

name:'变大小',

content:'变~~~~'

}

]

},

{

id:2,

name:沙悟净,

age:99998,

sp:和尚同款项链

}

mongodb存储的就是json数据

相关指令

终端输入>>>>mongo #进入mangodb数据库

show databases; # 显示所有数据库

use databasename # 使用并切换到指定的数据库

db #查看当前使用的数据库

show tables # 显示当前数据库下的所有表

use 不存在的数据库名 # 创建数据库

db.不存在的表名 # 创建表

# 上面新创建数据库和创建表是看不到的,原因是在内存中创建的,但是当你插入数据后就能在本地查看到。

db.tablename.insert({"键":"值"}) # 插入数据

db.tablename.find({查询条件}) # 查询所有符合条件的数据

db.tablename.findOne({查询条件}) # 查询所有符合条件的第一条数据 返回json数据

db.tablename.update({内置条件},{修改语句}) #修改数据 所有mongodb的修改全部基于 修改器 如果符合条件的数据有多条也只会修改第一条

$set #强制将某字段值修改

db.tablename.update({age:66},{$set:{age:77}}) # 如果该字段不存在即创建该字段并赋值

$unset # 删除字段

db.tablename.update({name:"孙悟空"},{$unset:{age:1}}) # 必须为1

$inc # 引用增加 先引用原有数据,在原有数据基础上增加

db.tablename.update({name:"孙悟空"},{$inc:{age:10}})

$push # 针对Array List操作 相当于append

db.user.update({name:"孙悟空", {$push:{hobby:7}}}) #在hobby中添加7

$pushAll # 相当于extends

db.user.update({name:"孙悟空", {$pushAll:{hobby:[8,9,10]}}})

$pull #相当于remove() 循环遍历删除

db.user.update({name:"孙悟空", {$pull:{hobby:7}}})

$pullAll #删除多个 循环遍历删除

db.user.update({name:"孙悟空", {$pullAll:{hobby:[8,9,10]}}})

$pop # 约等于pop() 因为$pop只能删除第一个和最后一个,默认是最后一个 负数从上往下删(第一个数据) 正数从下往上删(最后一个)

db.tablename.remove({查询条件}) #删除指定数据,不写条件则删除所有

$ #数学比较符

$gt #大于

$gte #大于等于

$lt #小于

$lte #小于等于

$eq #等于

$ne #不等于

db.tablename.find({age:{$gt:70}}) # 年龄大于70的

官方推荐写法 增删改查 3.2以后

# 增

db.user.insertOne({}) # 新增一条数据

db.user.insertMany([{},{}]) #新增多条

# 查询

db.user.findOne({}) #查询符号条件的第一条数据

# 改

db.user.updateOne({},{}) # 修改符合条件的第一条数据

db.user.updateMany({},{}) #修改符合条件的所有数据

修改中$关键字的用法 name:"孙悟空",hobby:['抽烟','喝酒','烫头'] 将hobby中的喝酒改为飙车

$是用来存储符合当前Array条件元素的下标索引

db.user.updateOne({name:'孙悟空',hobby:'喝酒'},{$set:{"hobby.$":"飙车"}})

# {student:{name:"java",content:"基础教学"}} 将字典中的name改为python

db.user.updateOne({name:'孙悟空'},{$set:{"student.name":"python"}})

# [{'name':"py"},{'name':"MPy"},{'name':"开车"}] 将列表中字典name对应的值为MPy的改为anyway

db.user.updateOne({name:'孙悟空',"student.name":'MPy'},{$set:{"student.$.name":"anyway"}})

# 删

db.user.deleteOne({}) # 删除符合条件的第一条

db.user.deleteMany({}) # 删除所有符合条件的数据

数据类型

Object ID :Documents 自生成的 _id

String: 字符串,必须是utf-8

Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)

Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)

Double:浮点数 (没有float类型,所有小数都是Double)

Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)

Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典

Null:空数据类型 , 一个特殊的概念,None Null

Timestamp:时间戳

Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

可视化操作工具nosqlbooster for mongodb的使用

选取,跳过,排序

# 排序

db.user.find({}).sort({age:1}) #以age字段进行排序,1表示正序,-1表示倒序

# 跳过

db.user.find({}).skip(2) # 跳过前两条后查询

# 选取

db.user.find({}).limit(5) # 选取5条

# 重点

当上面三个关键全部出现在一条语句中时,会按照先排序再跳过再选取的逻辑。无论哪个怎么打乱顺序都是会按照这个逻辑查询查询出数据。

可用于分页

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值