MongoDB Shell操作指南:数据管理与用户权限
需积分: 48 81 浏览量
更新于2024-09-11
收藏 10KB TXT 举报
"本文将介绍MongoDB Shell的基本操作,包括数据操作、数据库管理、用户管理和查询等关键知识点。MongoDB Shell是MongoDB数据库的交互式JavaScript环境,用于执行数据库命令和管理操作。"
在MongoDB Shell中,你可以进行多种操作来管理数据库和文档。以下是一些基本的指令:
1. 删除字段:`db.store.update({"category":"1"},{"$unset":{"stores":1}});` 这个命令用于删除`store`集合中`category`字段为`1`的所有文档的`stores`字段。
2. 查看帮助:`help`或`db.help()`等,这些命令提供有关MongoDB Shell可用的各种命令的帮助信息。
3. 切换数据库:`use yourDB;` 用于切换到名为`yourDB`的数据库。如果该数据库不存在,它会被创建。
4. 列出所有数据库:`show dbs;` 展示当前系统中存在的所有数据库。
5. 删除数据库:`db.dropDatabase();` 用于删除当前正在使用的数据库,注意这是不可逆的操作。
6. 复制数据库:`db.cloneDatabase("127.0.0.1");` 从指定的主机(本例中为localhost)复制当前数据库。
7. 从一个源复制数据库:`db.copyDatabase("mydb","temp","127.0.0.1");` 将`mydb`数据库复制到本地的`temp`数据库。
8. 修复数据库:`db.repairDatabase();` 对当前数据库进行检查和修复,解决可能存在的存储问题。
9. 获取当前数据库名称:`db.getName();` 或 `db;` 用来显示当前正在使用的数据库名称。
10. 显示数据库状态:`db.stats();` 提供关于当前数据库的统计信息,如大小、索引等。
11. 获取MongoDB版本:`db.version();` 显示MongoDB服务器的版本号。
12. 连接到MongoDB实例:`db.getMongo();` 返回与当前MongoDB连接的Mongo对象。
在MongoDB Shell中创建和管理集合(类似关系型数据库中的表):
1. 创建集合:`db.createCollection(collName,{size:20,capped:5,max:100});` 创建一个名为`collName`的集合,可设置大小、是否为固定大小(capped)以及最大文档数量。
2. 检查集合是否为固定大小:`db.collName.isCapped();` 如果集合是固定大小的,此命令将返回`true`。
3. 获取指定集合:`db.getCollection("account");` 获取名为`account`的集合。
4. 列出所有集合:`db.getCollectionNames();` 显示当前数据库中所有集合的名称。
5. 集合统计信息:`db.printCollectionStats();` 打印集合的统计信息,如大小、文档数等。
用户管理和认证:
1. 添加用户:`db.addUser("name")` 或 `db.addUser("userName","pwd123",true);` 添加新用户,第二个参数可选,设置是否为管理员。
2. 用户认证:`db.auth("userName","123123");` 使用用户名和密码进行身份验证。
3. 查看用户列表:`show users;` 列出所有数据库用户。
4. 删除用户:`db.removeUser("userName");` 从当前数据库中删除指定的用户。
查询文档:
1. 查询所有文档:`db.userInfo.find();` 类似SQL的`SELECT * FROM userInfo;`,默认每页显示20条记录,可通过`DBQuery.shellBatchSize`设置每页显示数量。
2. 分页查询:可以使用`skip()`和`limit()`方法实现分页,例如`db.userInfo.find().skip(50).limit(50);` 会跳过前50条记录并显示接下来的50条。
以上就是MongoDB Shell的一些基本操作,它们构成了MongoDB数据库日常管理和查询的基础。通过熟练掌握这些命令,你可以更有效地管理MongoDB数据库。
2021-11-20 上传
2017-11-28 上传
2024-09-21 上传
2018-05-24 上传
2017-07-08 上传
2022-03-10 上传
2017-08-17 上传
moon_legend_net
- 粉丝: 0
- 资源: 12
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍