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

MongoDB基础增删改查命令

目录

前置知识

JSON对象格式

JSON对象数组格式

MongoDB和MySQL类比理解

对数据库增删改查

创建数据库

查看所有数据库

查看当前数据库

删除数据库

对集合进行增删改查

创建集合

查询集合

删除集合

对集合中的JSON对象进行增删改查

增删改查所需要的操作符概念

查询操作符

逻辑操作符

更新操作符

插入JSON对象

更新JSON对象

删除JSON对象

查询JSON对象


前置知识

JSON对象格式

{"key": "value"}

JSON对象数组格式

[{"key1": "value1"},{"key2": "value2"},...]

MongoDB和MySQL类比理解

MongoDB的集合相当于MySQL中的表

MongoDB的JSON对象相当于MySQL中的一行数据

MongoDB的JSON对象数组相当于MySQL中的多行数据

MySQL是需要对表进行创建的,MongoDB中的集合是直接指定,不需要创建

对数据库增删改查

创建数据库

MongoDB数据库不是直接创建的

切换数据库,有了切换过去,没有了自动创建数据库再进行切换

所以我们想要创建数据库就直接切换数据库就可以了

use 数据库名称

查看所有数据库

show dbs

查看当前数据库

db

删除数据库

MongoDB没有删除指定数据库的命令,只有删除当前数据库的命令

所以要删除数据库要分为两步:

#切换到想要删除的数据库
use 数据库名称#执行删除当前数据库的命令
db.dropDatabase()

对集合进行增删改查

创建集合

MongoDB推荐给集合插入数据的时候自动创建

所以集合本质上是不需要使用创建命令创建的,直接向集合插入数据,如果没有这个集合会自动创建的

查询集合

查询当前数据库下的所有集合

#返回值是数组形式
db.getCollectionNames();

删除集合

#删除指定的集合
db.集合名称.drop();

对集合中的JSON对象进行增删改查

首先,我需要澄清一点,这里强调是对集合中的JSON对象进行增删改查是为了便于理解

实际上的 集合中的JSON对象 专业术语是 文档

如果有同志不理解JSON对象、JSON对象数组格式,请看我上面的前置知识部分

增删改查所需要的操作符概念

查询操作符
操作符说明示例
$eq等于age: { $eq: 25 }
$ne不等于age: { $ne: 25 }
$gt大于age: { $gt: 25 }
$lt小于age: { $lt: 25 }
$in包含在数组中name: { $in: ["Alice", "Bob"] }
$regex正则匹配name: { $regex: /^A/ }
逻辑操作符
操作符说明示例
$and

显式写法                  $and: [{查询操作符1}, {查询操作符2}]

(推荐)隐式写法       查询操作符1,查询操作符2

$or$or: [{查询操作符1}, {查询操作符2}]
$not单个取反$not: {查询操作符}
$nor多个取反$nor: [{查询操作符1}, {查询操作符2}]

如果and和or都出现的情况下,推荐使用隐式and和显式or搭配使用,清晰明了 

更新操作符
操作符说明示例
$set设置字段$set: { age: 26 }
$unset删除字段$unset: { city: 1 }
$inc递增数字$inc: { age: 1 }
$push向数组添加元素$push: { hobbies: "reading" }
$pull从数组删除元素$pull: { hobbies: "gaming" }

插入JSON对象

#对指定集合插入单个JOSN对象
db.集合名称.insertOne(JSON对象);#对指定集合插入多个JSON对象
db.集合名称.insertMany(JSON对象数组);

更新JSON对象

#这里的查询条件是逻辑操作符号和查询操作符号的嵌套,就是指查询条件
#对指定的集合进行单个JSON对象的更改
db.集合名称.updateOne({查询条件},{一个或多个更新操作符});#对指定集合进行多个JSON对象的更改
db.集合名称.updateMany({查询条件},{一个或多个更新操作符});#对指定集合中的指定行进行JSON对象的替换,就是所有数据都改变但是id不变
db.集合名称.replaceOne({查询条件},JSON对象);

删除JSON对象

#这里的查询条件是逻辑操作符号和查询操作符号的嵌套,就是指查询条件
#删除单个JSON对象
db.集合名称.deleteOne({查询条件});#删除多个JSON对象
db.集合名称.deleteMany({查询条件});

查询JSON对象

#这里的查询条件是逻辑操作符号和查询操作符号的嵌套,就是指查询条件
#查询所有匹配的JSON对象
db.集合名称.find({查询条件});#查询单个匹配的JSON对象
db.集合名称.findOne({查询条件});
http://www.xdnf.cn/news/15424.html

相关文章:

  • CSS :root伪类详解:实现动态主题切换的关键所在
  • CAS单点登录架构详解
  • 从零构建鸿蒙应用:深度解析应用架构与项目结构
  • linux 内核: 遍历当前所有进程
  • AR眼镜:重塑医学教育,开启智能教学新时代
  • 图像修复:深度学习实现老照片划痕修复+老照片上色
  • 物联网系统中MQTT设备数据的保存方法
  • HC595串转并
  • CUDA 环境下 `libcuda.so` 缺失问题解决方案
  • linux网络编程之单reactor模型(二)
  • 僵尸进程Zombie Process
  • Java核心类库深度解析与实战:从字符串处理到计算器开发
  • 【Android】按钮的使用
  • Windows远程FX的编解码器性能优化
  • vscode 打开c++文件注释乱码
  • WPF,Winform,HTML5网页,哪个UI开发速度最快?
  • 智驾芯片软件分层测试
  • Element plus参考vben逻辑实现的描述列表组件封装实践
  • Spark Expression codegen
  • 利用DeepSeek为chdb命令行客户端添加输出重定向和执行SQL脚本功能
  • uniapp 微信小程序Vue3项目使用内置组件movable-area封装悬浮可拖拽按钮(拖拽结束时自动吸附到最近的屏幕边缘)
  • JDK1.8函数式编程实战(附日常工作案例,仅此一篇耐心看完彻底搞懂)
  • 力扣73:矩阵置零
  • redis红锁
  • 微信小程序开发-桌面端和移动端UI表现不一致问题记录
  • 自然语言指令驱动的工业机器人协同学习系统:大语言模型如何重塑智能体协作范式
  • Containerd容器技术详解
  • 拥抱 Spring Boot:开启 Java 后端开发的“快车道”
  • 2025阿里云黑洞恢复全指南:从应急响应到长效防御的实战方案
  • AJAX 开发中的注意点