当前位置: 首页 > 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://www.lryc.cn/news/589098.html

相关文章:

  • vscode配置运行完整C代码项目
  • B/S 架构通信原理详解
  • 高标准农田气象站的功能
  • 亚矩阵云手机:破解 Yandex 广告平台多账号风控难题的利器
  • 云服务器如何管理数据库(MySQL/MongoDB)?
  • 《大数据技术原理与应用》实验报告四 MapReduce初级编程实践
  • Keepalived双机热备概述
  • 死锁问题以及读写锁和自旋锁介绍【Linux操作系统】
  • Sersync和Rsync部署
  • 免杀学习篇(1)—— 工具使用
  • Dify的默认端口怎么修改
  • 算法学习day16----Python数据结构--模拟队列
  • Nuxt3宝塔PM2管理器部署
  • linux系统------LVS+KeepAlived+Nginx高可用方案
  • LVS(Linux Virtual Server)详细笔记(理论篇)
  • 李宏毅《生成式人工智能导论》 | 第9讲 AI Agent
  • Jfinal+SQLite java工具类复制mysql表数据到 *.sqlite
  • 设计模式笔记_结构型_适配器模式
  • Redis 中的持久化机制:RDB 与 AOF
  • 基于STM32设计的智能厨房
  • redis快速入门教程
  • JavaScript进阶篇——第四章 解构赋值(完全版)
  • Bash shell用法
  • 轻松管理多个Go版本:g工具安装与使用
  • 【自学linux】计算机体系结构和操作系统第二章
  • OpenCV 伽马校正函数gammaCorrection()
  • PG备份一(逻辑备份)
  • 算法与前端的可访问性
  • Linux系统调优和工具
  • OpenCV-Python Tutorial : A Candy from Official Main Page(三)