当前位置: 首页 > news >正文

4.MongoDB中16个常用CURD

img

基本的CURD

作为一个非专业的DBA,我们只需要会一些基本的curd就行,专业的内容还是需要专业的人去干的。CRUD 也就是增删改查,这是数据库最基本的功能,查询还支持全文检索,GEO 地理位置查询等。

01创建库

无需单独创建,直接use进去

02创建表

无需单独创建,直接插入数据

03插入记录

// 单个文档插入到集合中
db.collection.insertOne()
// 多个文档插入到集合中
db.collection.insertMany()// demo
db.collection.insertOne({"id":1,"name":"张三"})
db.collection.insertMany([{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])

04更新记录

// 更新单条
db.collection.updateOne()
// 更新多条
db.collection.updateMany()// demo
update user set name = "李四" where id = 1;
db.user.updateMany({"id":1}, {$set:{"name":"李四"}})

05删除记录

// 删除单条文档
db.collection.deleteOne()
// 删除多条文档
db.collection.deleteMany()// demo
db.user.deleteMany({"id":1})

06删除库

// 先use 
db.dropDatabase()

07删除表

db.collection.drop()

08查询数据

db.collection.find( )
db.collection.findOne()// demo
select * from user where name = "李四";
db.user.find({"name":"李四"})// < 查询
select * from user where id < 2;
db.user.find({id:{$lt:2}})// 比较查询
db.collection.find({ "field" : { $gt: value }}) // 大于: field > value
db.collection.find({ "field" : { $lt: value }}) // 小于: field < value
db.collection.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.collection.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.collection.find({ "field" : { $ne: value }}) // 不等于: field != value// 包含查询
db.user.find({id:{$in:[1,2]}})  // id in(1,2)
db.user.find({id:{$nin:[3]}}) // id != 3// or 查询
select * from user where id = 1 or name ='李四';
db.user.find($or:[{id:1},{name:'李四'}])// 格式化结果
db.user.find().pretty()

09模糊查询

select * from user where name like "%李%";
db.user.find({name://})select * from user where name  like "ste%";
db.user.find({name:/^/})

10分页查询

const pageNumber = 2; // 第几页
const pageSize = 10; // 每页多少条记录
// mysql
SELECT * FROM user LIMIT pageSize OFFSET (pageNumber - 1) * pageSize;
// mongodb
db.user.find({}).skip((pageNumber - 1) * pageSize).limit(pageSize);

注意:skip()、limilt()、 sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit(),和命令编写顺序无关。

11排序

// 正排序查询  
select * from user order by id;
db.user.find().sort({id:1})//逆排序查询  
select * from user order by id desc;
db.user.find().sort({id:-1})

12去重

select distinct(name) from user;
db.user.distinct('name')

13获取表记录数

db.user.count()
db.user.find({id:1}).count()

14取存储路径

explain select * from tname where id=3;          
db.tname.find({id=3}).explain()

15创建索引

//mysql
CREATE INDEX idx_name ON user (name);
ALTER TABLE user ADD INDEX idx_name (name);// mongodb 
db.user.createIndex({ name: 1 },{ unique: true })

上面的例子中,{ name: 1 } 定义了索引的字段和排序方向(1 表示升序,-1 表示降序)。{ unique: true } 选项指定了这是一个唯一索引。

16查看索引

db.user.getIndexes()
http://www.lryc.cn/news/319069.html

相关文章:

  • Tomcat数据源笔记
  • Spring-Kafka笔记整理
  • 已解决org.apache.hadoop.hdfs.protocol.QuotaExceededException异常的正确解决方法,亲测有效!!!
  • GitHub打不开的解决方案(超简单)
  • Unity开发一个FPS游戏之二
  • STM32F103 CubeMX 使用USB生成鼠标设备
  • HJXH-E1/U静态信号继电器 面板安装 辅助电源220VDC 启动电压220VDC JOSEF约瑟
  • SpringBoot3下Kafka分组均衡消费实现
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridItem)
  • Qt 使用RAW INPUT获取HID触摸屏,笔设备,鼠标的原始数据,最低受支持的客户端:Windows XP [仅限桌面应用]
  • easyexcel导出excel文件到s3服务器
  • xss.haozi.me靶场“0x0B-0x12”通关教程
  • linux--redhat系统Yum源配置
  • el-Switch 开关二次确认
  • (二)丶RabbitMQ的六大核心
  • 微信小程序实现上下手势滑动切换
  • 详解命令docker run -d --name container_name -e TZ=Asia/Shanghai your_image
  • javaEE7
  • int与integer的区别
  • Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)
  • 音乐播放器-C#实现
  • 如何本地搭建hMailServer邮件服务
  • 裸机编程的几种模式、架构与缺陷。
  • TSINGSEE青犀视频AI方案:数据+算力+算法,人工智能的三大基石
  • Linux认识与学习BASH
  • Python JSON 序列化以及反序列化 文件读写
  • Spring MVC 返回JSON数据
  • 前端基础——HTML傻瓜式入门(1)
  • 【AI】如何创建自己的自定义ChatGPT
  • 电子科技大学链时代工作室招新题C语言部分---题号E