MongoDB入门指南:文档存储与操作命令详解

需积分: 5 0 下载量 25 浏览量 更新于2024-08-05 收藏 6KB MD 举报
"MongoDB 是一种可扩展的敏捷 NoSQL 数据库,强调高性能、高可用性和易部署性。MongoDB 基于文档存储模型,数据以 BSON 格式存储在集合中,支持丰富的查询和索引功能。它介于关系型数据库和非关系型数据库之间,提供了类似于 SQL 的查询语言,方便用户操作数据。" MongoDB 的核心知识点包括: 1. **概念与特性**: - MongoDB 是一款非关系型数据库,采用 NoSQL 文档存储模型,支持 JSON 格式的文档。 - MongoDB 的名称来源于“humongous”,意味着它可以处理大量数据。 - 它具有高可扩展性,支持水平扩展,可以通过分片来处理大数据量。 - MongoDB 提供了灵活的数据模型,可以轻松适应不断变化的数据结构。 - 强调高可用性,支持复制集(replica sets),确保数据冗余和故障转移。 2. **数据模型**: - 数据以文档(documents)的形式存储在集合(collections)中,集合类似于 RDBMS 中的表。 - 文档是键值对的集合,键值对以 BSON(Binary JSON)格式存储,支持多种数据类型,如字符串、数字、日期等。 - 集合可以动态模式,即无需预先定义结构,可以插入不同结构的文档。 3. **操作命令**: - 使用 `mongo` 命令进入 MongoDB shell 进行交互式操作。 - `show dbs` 查看所有数据库,`use <database>` 切换或创建数据库,`db.dropDatabase()` 删除当前数据库。 - `db.createCollection(<collection>)` 创建集合,如果尝试插入不存在的集合,MongoDB 会自动创建。 - `db.<collection>.drop()` 删除集合。 - `db.<collection>.insert(<document>)` 插入文档,支持单条和多条插入。 - `db.<collection>.find()` 查询文档,`db.<collection>.find().pretty()` 格式化输出,可以使用查询条件进行筛选。 4. **查询与更新**: - MongoDB 支持丰富的查询语法,如基本匹配、范围查询、正则表达式、嵌套文档查询等。 - `db.<collection>.find({<condition>})` 用于根据指定条件查找文档,支持逻辑运算符如 `and` 和 `or`。 - 更新操作如 `db.<collection>.updateOne({<condition>}, {<updateSpec>})` 或 `db.<collection>.updateMany({<condition>}, {<updateSpec>})`,可以修改匹配条件的文档。 - 删除操作如 `db.<collection>.deleteOne({<condition>})` 或 `db.<collection>.deleteMany({<condition>})` 可以按条件删除文档。 5. **索引**: - MongoDB 支持创建索引来加速查询,如 `db.<collection>.createIndex({<key1>:1, <key2>:1})`,1 表示升序,-1 表示降序。 - 索引可以是单一字段或复合字段,还可以创建唯一索引以避免重复数据。 6. **复制集与分片**: - 复制集是 MongoDB 提供的高可用性解决方案,通过多个副本保持数据冗余,当主节点故障时,副本可以自动接管。 - 分片(sharding)用于水平扩展,将数据分散在多个服务器上,提高读写性能。 7. **安全性**: - MongoDB 提供用户认证、访问控制和加密功能,确保数据安全。 - 用户可以通过 `db.createUser()` 创建用户,设置权限来管理数据库访问。 MongoDB 的灵活性和高性能使其成为大数据、实时分析和互联网应用的理想选择。学习和掌握 MongoDB 的操作和特性,对于构建可扩展的现代数据基础设施至关重要。