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) . ...
随机推荐
- 一文彻底弄懂JUC工具包的Semaphore
Semaphore 是 Java 并发包 (java.util.concurrent) 中的重要工具,主要用于控制多线程对共享资源的并发访问量.它可以设置"许可证"(permit) ...
- 告别繁琐的云平台开发!IoT_CLOUD之【百度云】
众所周知,市面上有很多云平台,阿里云.腾讯云.中移OneNET.华为云.百度云.涂鸦云.Tlink云等等......并且每家云平台都有自己的协议,工程师要移植不同的SDK代码或基于各家的手册文档对 ...
- Docker容器内服务自启动解决方案
背景 在很多场景下,我们需要拉取或者是使用的别人的容器,但是有些容器内部的服务并不能自启动,比如Apache服务.mysql服务等等,对于数量较少的容器来讲,我们可以进入容器中使用命令将服务进行启动, ...
- Windows下的终端工具-Terminal
文档:https://docs.microsoft.com/zh-cn/windows/terminal/ Windows 终端是一个面向命令行工具和 shell(如命令提示符.PowerShell ...
- Nuxt.js 应用中的 request 事件钩子
title: Nuxt.js 应用中的 request 事件钩子 date: 2024/12/4 updated: 2024/12/4 author: cmdragon excerpt: 在构建现代 ...
- ZCMU-1129
数学公式题罢了 学长 1.斯特灵公式: 2.对数公式(因为以10为底,得到的是10^x,所以最后向下取整加上1): #include<cstdio> #include<cmath&g ...
- bat隐藏窗口运行
在bat脚本开头添加: if "%1" == "h" goto begin mshta vbscript:createobject("wscript. ...
- 《JavaScript 模式》读书笔记(7)— 设计模式2
这一篇我们主要来学习装饰者模式.策略模式以及外观模式.其中装饰者模式稍微复杂一点,大家认真阅读,要自己动手去实现一下哦. 四.装饰者模式 在装饰者模式中,可以在运行时动态添加附加功能到对象中.当处理静 ...
- 切换浏览器tab刷新实现
标签: js 缘起 最近在做一个活动需求,需求交互有跨项目,跳转到另一个项目里完成指定任务,再回来领取相应任务奖励,产品十分反感要求用户主动刷新浏览器才更新活动页的任务信息. 解决方案 方案1:如果项 ...
- 用word发博客
测试 标题一 第一段文字 测试图片 标题二 Test test