前端知识点小结--mongodb
MongoDB 是一个基于分布式文件存储的开源数据库系统,旨在为 WEB 应用提供高性能、易部署、易使用的数据存储解决方案。
以下是一些关于MongoDB的常见知识点:
- 基本概念:
- 文档(document):MongoDB 中数据的基本单元,非关系型数据库中的“行”。
- 集合(collection):多个文档组成的集合,类似于关系型数据库中的“表”。
- 数据库(database):多个集合组成的数据库,类似于关系型数据库中的“数据库”。
- 安装与启动:
- 安装:通过包管理器或直接下载可执行文件安装。
- 启动:在命令行中使用
mongod
命令启动 MongoDB 服务。
- 连接与操作:
- 连接:使用 MongoDB 客户端或驱动程序连接到 MongoDB 服务。
- 操作:使用 MongoDB 的 shell 或编程语言中的驱动程序进行数据的增删改查操作。
- 数据模型设计:
- 嵌入(Embedding):将一个对象嵌入到另一个对象中,而非作为引用。
- 引用(Linking):将文档与其他集合关联,而非嵌入数据。
- 索引:
- 创建索引:可以提高查询效率。
- 复合索引:可以为多个字段创建索引,提高复合查询的效率。
- 聚合管道:
- 管道:一系列的阶段,用于处理输入文档流,并输出一个新的文档流。
- 阶段:聚合管道中的每个处理阶段。
- 安全与认证:
- 用户管理:创建用户并分配角色,实现访问控制。
- 身份验证:通过用户名和密码或其他认证机制验证用户。
- 复制:
- 主从复制:一个服务器充当主服务器,其余服务器充当从服务器。
- 副本集:多个服务器组成副本集,提供高可用性。
- 分片:
- 分片:将数据分散到不同的服务器上,提高数据库的数据处理能力。
- 分片键:选择合适的字段作为分片键。
- 最佳实践:
- 模型设计:合理设计模型以满足查询需求和数据一致性。
- 索引优化:适当创建和优化索引以提高查询性能。
- 查询优化:编写高效查询以减少资源消耗。
示例代码:
// 连接MongoDB
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mydatabase';
MongoClient.connect(url, function(err, client) {
if(err) throw err;
const db = client.db(dbName);
// 查询数据
db.collection('users').find({}).toArray(function(err, docs) {
if(err) throw err;
console.log(docs);
client.close();
});
// 插入数据
db.collection('users').insertOne({name: 'John Doe'}, function(err, result) {
if(err) throw err;
console.log('Inserted document:', result);
client.close();
});
});
评论已关闭