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

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://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://www.dtcms.com/a/280138.html

相关文章:

  • 基于LAMP环境的校园论坛项目
  • SpringBoot源码解析
  • MyBatis与Spring整合优化实战指南:从配置到性能调优
  • mysql 索引失效的场景
  • HashMap深入讲解
  • 从零开始的python学习(八)P115+P116+P117+P118+P119+P120+P121+P122
  • 部署本地大模型 Ollama + LLaMA3
  • Java基础(八):封装、继承、多态与关键字this、super详解
  • GPIO 输入/输出
  • GEO革命:当AI推荐成为新战场,传统SEO如何进化?
  • Linux基础学习---目录相关命令
  • 手机当路由,连接机器人和电脑
  • Typecho插件开发:实现文章字数统计与阅读时长计算功能
  • docker 方式gost代理搭建以及代理链实施
  • Android弹窗
  • uniapp中全局引入ronMounted, ref,watch onLoad,onShow等
  • Vim多列操作指南
  • docker-compose 配置启动2个MongoDB
  • SQL 常用版本语法概览:标准演进与关键语法分析
  • bat 批处理实现 FFmpeg 命令导出 mov 到 png 序列帧
  • 新版本PyCharm Conda环境设置 “找不到conda可执行文件”的解决
  • Git分支管理与工作流详解
  • 记录一条sql面试题2
  • MyBatis动态语法标签速查
  • Fastapi框架总览与核心架构
  • iOS App 上架工具选型与跨平台开发 iOS 上架流程优化实录
  • 深入探讨Hadoop YARN Federation:架构设计与实践应用
  • Datawhale AI数据分析 笔记
  • 2025开放原子开源生态大会 | openKylin的技术跃迁和全球协作
  • 回顾一下Docker的基本操作