mongodb_增删改语句

本文详细介绍了MongoDB中的增删改操作,包括insert、delete、save和update。update部分详细讲解了$set、$inc、$unset、$push、$pushAll、$addToSet、$pop、$pull和$pullAll等更新操作,如何修改、增加、删除文档的字段值和数组元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 insert 

向集合中插入文档
db.collection.insert({field1:string},{field2:int},{field3:list},{field4:dict})		
向集合中插入一条文档
db.collection.insertOne({key:value})		
向集合中插入多条文档
db.collection.insertMany([{key:value},{key:value},{key:value}])	

delete

删除符合条件的第一条文档
db.collection.deleteOne({
<query>,				query :(可选)删除的文档的条件
   {
     justOne: <boolean>,		justOne :(可选)如果设为 true 或 1 只删除一个文档
     writeConcern: <document>		writeConcern :(可选)抛出异常的级别
   }
)		
			
删除符合条件的所有文档
db.collection.deleteMany({})

save

db.collection.save({
<document>,				document : 文档数据
   {
     writeConcern: <document>		writeConcern :可选,抛出异常的级别
   }
})
———————————————————————————————
判断主键是否存在: 
存在:传入的文档来替换已有文档记录
不存在:插入一条新的文档记录

update

db.collection.update(
   <query>,				# 条件
   <update>,				# 需要更新的文档信息
   {
     upsert: <boolean>,			# 可选,如果不存在符合条件的文档则插入一条,默认是false
     multi: <boolean>,			# 可选,默认更新第一条,为true则更新所有
     writeConcern: <document>		# 可选,抛出异常的级别
   }
)

db.collection.updateOne()          # update一个文档
db.collection.updateMany()         # update所有文档

# 注:update()语句默认只操作筛选出来的第一条文档

$set (更新文档中某些字段的值)

col集合中查找name=sitven and age=23的文档,将其字段age的value更新为24

db.col.update({name:'sitven',age:23},{$set:{age:24}},{multi:true})

upsert

col集合中查找name=sitven and age=24的文档,如果存在将其age的值更新为25,否则新插入一条文档

db.col.update({name:'sitven',age:24},{$set:{age:25}},{upsert:true})

multi

col集合中查找age=25的所有文档,将其字段age的值更新为26

db.col.update({age:25},{$set:{age:26}},{multi:true})

$inc (对某个数字字段的值增加n)

col集合中查找name=sitven and age=26的文档,将其字段age值增加4

db.col.update({name:'sitven',age:26},{$inc:{age:4}})

$unset (删除某个字段)

col集合中查找age=27的文档,将删除其date字段

db.col.update({age:27},{$unset:{date:1}})

$push (把数据追加到字段中,注:field只能是数组类型, 如果key不存在,则自动插入一个数组类)

col集合中查找age=27的文档,将其date字段追加一个2020-03-10的值

db.col.update({age:27},{$push:{date:'2020-03-10'}})

$pushAll (把多个数据追加到某个字段中,value为数组类型)

col集合中查找age=27的文档,将其date字段追加2021-03-18和2022-03-19的两个值

db.col.update({age:27},{$pushAll:{date:['2021-03-18','2022-03-19']}})

$addToSet (追加一个值到某个字段的数组内,若字段不存在则新增这个字段)

col集合中查找age=27的文档,将其date字段追加2021-03-23和2021-03-24的两个值

db.col.update({age:27},{$addToSet:{data:['2021-03-23','2021-03-24']}})

$pop (用于删除数组内的一个值)

注:删除数组内第一个值:{$pop:{key:-1}}、删除数组内最后一个值:{$pop:{key:1}}。删除固定值{$pop:{key: ‘value’}}

col集合中查找age=27的文档,删除字段date的value数组的第一个值

db.col.update({age:27},{$pop:{date:-1}})

$pull ( 从数组字段中value内删除为value1的所有数据)

col集合中查找age=27的文档,删除字段date的value数组中的‘2021-03-18’

db.col.update({age:27},{$pull:{data:'2021-03-18'}})

$pullAll ( 从数组字段中删除等于条件数组的所有数据)

col集合中查找age=27的文档,删除字段date的value数组中等于['2021-03-12','2021-03-13']内任意值的数据

db.col.update({age:27},{$pullAll:{data:['2021-03-12','2021-03-13']}}

$rename ( 对字段重命名)

col集合中查找age=27的文档,将其字段date重命名为ddt

db.col.update({age:27},{$rename:{'date':'ddt'}})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SitVen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值