MongoDB 常用指令(详细)
# MongoDB 常用指令
## 基础命令
### 启动与连接
```bash
# 启动 MongoDB 服务
mongod
# 连接 MongoDB 客户端
mongo
```
### 数据库操作
```bash
# 查看当前使用的数据库
db
# 列出所有数据库
show dbs
# 切换或创建数据库
use <database_name>
# 删除当前数据库
db.dropDatabase()
```
## 集合操作
```bash
# 查看当前数据库的所有集合
show collections
# 创建集合
db.createCollection("<collection_name>")
# 删除集合
db.<collection_name>.drop()
```
## 文档操作
### 插入
```bash
# 插入单个文档
db.<collection_name>.insertOne({<field1>: <value1>, <field2>: <value2>})
# 插入多个文档
db.<collection_name>.insertMany([
{<field1>: <value1>, <field2>: <value2>},
{<field1>: <value1>, <field2>: <value2>}
])
```
### 查询
```bash
# 查询所有文档
db.<collection_name>.find()
# 格式化输出查询结果
db.<collection_name>.find().pretty()
# 查询单个文档
db.<collection_name>.findOne({<field>: <value>})
# 条件查询
db.<collection_name>.find({<field>: <value>})
# 使用逻辑运算符查询
db.<collection_name>.find({
$or: [
{<field1>: <value1>},
{<field2>: <value2>}
]
})
# 查询嵌套字段
db.<collection_name>.find({"<embedded_field>.<sub_field>": <value>})
```
### 更新
```bash
# 更新单个文档
db.<collection_name>.updateOne(
{<query_field>: <query_value>},
{$set: {<field_to_update>: <new_value>}}
)
# 更新多个文档
db.<collection_name>.updateMany(
{<query_field>: <query_value>},
{$set: {<field_to_update>: <new_value>}}
)
# 替换文档
db.<collection_name>.replaceOne(
{<query_field>: <query_value>},
{<new_document>}
)
```
### 删除
```bash
# 删除单个文档
db.<collection_name>.deleteOne({<field>: <value>})
# 删除多个文档
db.<collection_name>.deleteMany({<field>: <value>})
# 删除所有文档
db.<collection_name>.deleteMany({})
```
## 索引操作
```bash
# 创建索引
db.<collection_name>.createIndex({<field>: 1})
# 查看所有索引
db.<collection_name>.getIndexes()
# 删除索引
db.<collection_name>.dropIndex("<index_name>")
```
## 聚合操作
```bash
# 使用聚合管道
db.<collection_name>.aggregate([
{$match: {<field>: <value>}},
{$group: {_id: "$<group_field>", total: {$sum: "$<field_to_sum>"}}}
])
```
## 用户与权限
```bash
# 创建用户
db.createUser({
user: "<username>",
pwd: "<password>",
roles: [
{role: "<role>", db: "<database_name>"}
]
})
# 查看用户
db.getUsers()
# 删除用户
db.dropUser("<username>")
```
## 备份与恢复
```bash
# 导出数据库
mongodump --db <database_name> --out <backup_path>
# 导入数据库
mongorestore --db <database_name> <backup_path>/<database_name>
```
## 性能与监控
```bash
# 查看当前操作
db.currentOp()
# 查看数据库状态
db.stats()
# 查看集合状态
db.<collection_name>.stats()
# 分析查询性能
db.<collection_name>.find(<query>).explain("executionStats")
```
## 其他
```bash
# 清空集合
db.<collection_name>.deleteMany({})
# 计数文档数量
db.<collection_name>.countDocuments({})
# 获取数据库信息
db.serverStatus()
MongoDB 常用指令(详细)的更多相关文章
- MongoDB常用指令
db 查看当前操作的数据库 show dbs 显示所有数据库 show collections 显示当前数据库下的所有集合 use database_name 连接到一个名叫[database_nam ...
- redis基础:redis下载安装与配置,redis数据类型使用,redis常用指令,jedis使用,RDB和AOF持久化
知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作) 2. 数据类型 (重点) (操作) (理解) 3. 常用指令 (操作) 4. Jedis (重点) (操作) ...
- linux常用指令
整理下来的linux常用指令 mount [-t 文件系统] 设备文件名 挂载点挂载命令,一般用于在挂载ISO,或者其他比如U盘等设备时使用,[-t iso9660]为固定格式,可写可不写,非必写项. ...
- 走进AngularJs(二) ng模板中常用指令的使用方式
通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...
- mac 终端 常用指令
开始正式研究ios 应用开发,由于是从C开始学起,所以学习下常用的mac终端指令,方便后续常用操作. mac 终端 常用指令: 1.ls指令 用途:列出文件 常用参数 -w 以简洁的形式列出所有文件和 ...
- linux下svn常用指令
windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的 ...
- [转载]linux下svn常用指令
一下内容转载于:http://blog.chinaunix.net/space.php?uid=22976768&do=blog&id=1640924.这个总结的很好~ windows ...
- 基于header的一些常用指令详解
header常用指令 header分为三部分: 第一部分为HTTP协议的版本(HTTP-Version): 第二部分为状态代码(Status): 第三部分为原因短语(Reason-Phrase) ...
- git/github常用指令、入门
git的基本常用指令: 1.cd:切换路径 2.mkdir:进入文件夹目录 3.pwd:显示当前目录的路径 4.git init:把当前的目录变成可以管理的git仓库,生成隐藏.git文件 5.git ...
- 第一节. .Net Core环境的安装和常用指令
一. 环境介绍和安装 1. 环境介绍 .Net FrameWork框架:BCL(基础类库 system.dll).CLR(运行时 仅支持:Windows).FCL(一些框架,比如:MVC.WPF) . ...
随机推荐
- 用“tar | split ”将文件分包压缩
1.一次打包: tar cjf - directory/ | split -b 100m -d -a 1 - filename.tar.bz2. (directory/):待压缩的目录名. (spli ...
- Spring AI + ollama 本地搭建聊天 AI
Spring AI + ollama 本地搭建聊天 AI 不知道怎么搭建 ollama 的可以查看上一篇Spring AI 初学. 项目可以查看gitee 前期准备 添加依赖 创建 SpringBoo ...
- 域渗透之初识Kerberos认证过程
目录 Kerberos协议中的角色 关键名词 Kerberos协议的工作流程 AS_REQ & AS_REP TGS_REQ & TGS_REP AP_REQ PAC 总结 Kerbe ...
- C++ 实现万年历(原创)
2020年08月31日 首次分享文档源代码. 2023年11月23日 对文档.代码进行了更新,希望可以帮助到你. 1. 实现功能 提供菜单方式选择,假定输入的年份在1940-2040年之间. 输入一个 ...
- ZCMU-1179
我的错误: 明知道是大数问题但不是不想写数组或者字符串的结构. 思路 网上查阅后发现可以使用JAVA的大数类型做. 若不使用JAVA则就是整型数组或者字符串的情况. 将a^b结果放在数组当中,实时更新 ...
- 20号CSS学习
前面部分笔记丢失(呜呜有机会补) 一.盒子模型 1.4表格的细线边框 border-collapse: collapse;表示相邻边框合并在一起. 1.5边框会影响盒子的实际大小 测量时不测边框. 1 ...
- 给我2分钟,保证教会你在Vue3中实现一个定高的虚拟列表
前言 虚拟列表对于大部分一线开发同学来说是一点都不陌生的东西了,有的同学是直接使用第三方组件.但是面试时如果你简历上面写了虚拟列表,却给面试官说是通过三方组件实现的,此时空气可能都凝固了.所以这篇文章 ...
- FineReport模板性能问题排查方法
1. 概述 模板的加载速度受到很多因素影响,如果一个模板预览的时候,加载较慢,该如何去分析问题原因呢? 2. 排查步骤 2.1 查看数据集查询速度 大部分模板加载慢,都是因为 sql 执行速度比较慢. ...
- 用 16G 内存存放 30亿数据(Java Map)转载
在讨论怎么去重,提出用 direct buffer 建 btree,想到应该有现成方案,于是找到一个好东西: MapDB - MapDB : http://www.mapdb.org/ 以下来自:ko ...
- 【深度学习】Tensorflow学习(1)张量与常用函数
关于张量 张量可以表示0阶到N阶的数组 在TensorFlow中,张量(Tensor)表示某种相同数据类型的多维数据 因此张量有两个重要特征: 数据类型 数组形状(各个维度的大小) 张量的数据类型 t ...