【sql】MongoDB 增删改查 高级用法

【sql】MongoDB 增删改查 高级用法

相关使用文档

MongoDB Query API --- MongoDB Manual

https://www.mongodb.com/docs/manual/reference/sql-comparison

复制代码
//增
//新增数据2种方式
db.msg.save({"name":"springboot😀"});
db.msg.insert({"name":"mango good"});
db.msg.save({"name":"springboot",type:"工具书", json:{id:1, name:'张三'}});


//批量新增
db.msg.insertMany(

[
{"name":"springboot1",type:"工具书", user:{id:1, name:'张三'}},
{"name":"springboot2",type:"语文书", user:{id:2, name:'李四'}},
{"name":"springboot3",type:"数学书", user:{id:3, name:'王五'}},
]
);




//循环添加数据
var b = 0
while (b <= 100000) {
//db.msg.save({indexa:b, "name":"springboot",type:"工具书", json:{id:1, name:'张三'}});

db.msg.insertMany(

	[
		{"name":"springboot1",type:"工具书", user:{id:b+1, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+2, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+3, name:'王五'}},
		{"name":"springboot1",type:"工具书", user:{id:b+4, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+5, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+6, name:'王五'}},
		{"name":"springboot1",type:"工具书", user:{id:b+7, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+8, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+9, name:'王五'}},
		
		{"name":"springboot1",type:"工具书", user:{id:b+10, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+12, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+13, name:'王五'}},
		{"name":"springboot1",type:"工具书", user:{id:b+14, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+15, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+16, name:'王五'}},
		{"name":"springboot1",type:"工具书", user:{id:b+17, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+18, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+19, name:'王五'}},
		
		
		{"name":"springboot1",type:"工具书", user:{id:b+20, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+21, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+31, name:'王五'}},
		{"name":"springboot1",type:"工具书", user:{id:b+4, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+5, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+6, name:'王五'}},
		{"name":"springboot1",type:"工具书", user:{id:b+7, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+8, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+9, name:'王五'}},
		
		{"name":"springboot1",type:"工具书", user:{id:b+10, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+12, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+13, name:'王五'}},
		{"name":"springboot1",type:"工具书", user:{id:b+14, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+15, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+16, name:'王五'}},
		{"name":"springboot1",type:"工具书", user:{id:b+17, name:'张三'}},
		{"name":"springboot2",type:"语文书", user:{id:b+18, name:'李四'}},
		{"name":"springboot3",type:"数学书", user:{id:b+19, name:'王五'}},
		
	]
);


		b = b+30
}











//删除

//(1)删除
db.msg.remove({type:"工具书"})
//(2)删除所有
db.msg.remove({})

db.msg.remove({"json.id":1})




//修改
//(1)update首条
//update:遇到满足条件的第一条数据修改
db.msg.update({"name":"springboot"},{$set:{"name":"springboot2"}})

//(2)update多条
//updateMany :修改所有满足条件的
db.msg.updateMany({"name":"springboot"},{$set:{"name":"springboot2"}})

db.msg.updateMany({"json.id":1},{$set:{"name":"springboot2"}})


//(3)updateOne
//updateOne:修改满足条件的第一条数据
db.msg.updateOne({"name":"springboot2"},{$set:{"name":"springboot3"}})











//查询所有数据2种写法
db.msg.find()
db.getCollection("msg").find()


//查询数量
db.msg.find().itcount()


//条件查询
db.msg.find({type:"工具书"})

db.msg.find({"json.id":1})



//分页查询   
//第一页  每页3条
db.msg.find({"user.id":1}).skip(0).limit(3)

//第二页  每页3条
db.msg.find().skip(3).limit(3)


//第三页  每页3条
db.msg.find().skip(6).limit(3)



//排序
db.msg.find({"user.name":'张三'}).skip(200000).sort({ 'user.id':-1}).limit(30)

db.msg.find({"user.name":'张三'}).sort({ 'createDate':-1}).skip(0).limit(100)
db.msg.find({"user.id":99994}).sort({ 'createDate':-1}).skip(0).limit(100)
db.msg.find().sort({ 'createDate':1}).skip(0).limit(100)

db.msg.find({'createDate':{$gt:ISODate("2023-08-24T03:43:37Z")}}).sort({ 'createDate':1}).skip(0).limit(100)

db.msg.find({'createDate':{$gt:ISODate("2023-08-24T03:43:37Z")}}).count()


//条件
db.msg.find({"user.name":'张三',  'indexa': {$gt:3}}).skip(1000).sort({'indexa':-1}).limit(3)


//聚合查询
db.msg.aggregate({"$group":{"_id":"$type"
	,"total":{"$sum":"$user.id"}
	,"avg":{"$avg":"$user.id"}}})
相关推荐
岁忧26 分钟前
(LeetCode 面试经典 150 题 ) 11. 盛最多水的容器 (贪心+双指针)
java·c++·算法·leetcode·面试·go
CJi0NG30 分钟前
【自用】JavaSE--算法、正则表达式、异常
java
Nejosi_念旧1 小时前
解读 Go 中的 constraints包
后端·golang·go
风无雨1 小时前
GO 启动 简单服务
开发语言·后端·golang
Hellyc1 小时前
用户查询优惠券之缓存击穿
java·redis·缓存
小明的小名叫小明1 小时前
Go从入门到精通(19)-协程(goroutine)与通道(channel)
后端·golang
斯普信专业组1 小时前
Go语言包管理完全指南:从基础到最佳实践
开发语言·后端·golang
今天又在摸鱼1 小时前
Maven
java·maven
老马啸西风1 小时前
maven 发布到中央仓库常用脚本-02
java·maven
代码的余温1 小时前
MyBatis集成Logback日志全攻略
java·tomcat·mybatis·logback