【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"}}})
相关推荐
间彧17 分钟前
Java Stream流两大实战陷阱:并行流Parallel误用、List转Map时重复键异常
后端
码以致用18 分钟前
StarRocks笔记
数据库·starrocks·olap·1024程序员节
eguid_128 分钟前
【开源项目分享】JNSM1.2.0,支持批量管理的jar包安装成Windows服务可视化工具,基于Java实现的支持批量管理已经安装服务的可视化工具
java·开源·jar·1024程序员节·windows服务·jar包安装成服务·exe安装成服务
auspicious航1 小时前
PostgreSQL数据库关于pg_rewind的认识
数据库·postgresql·oracle
杯莫停丶1 小时前
设计模式之:享元模式
java·设计模式·享元模式
遥远_1 小时前
Java微服务无损发布生产案例
java·spring·微服务·优雅停机·java微服务无损发布
遥远_1 小时前
Spring Boot微服务健康检测:保障系统稳定性的关键实践
spring boot·微服务·1024程序员节·健康检测
苹果醋31 小时前
学习札记-Java8系列-1-Java8新特性简介&为什么要学习Java8
java·运维·spring boot·mysql·nginx
武子康1 小时前
Java-159 MongoDB 副本集容器化 10 分钟速查卡|keyfile + –auth + 幂等 init 附 docker-compose
java·数据库·mongodb·docker·性能优化·nosql·1024程序员节
兜兜风d'1 小时前
RabbitMQ 发送方确认机制详解
spring boot·分布式·rabbitmq·java-rabbitmq·1024程序员节