提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- MongoDB基础知识点总览
-
- 目录
- [1. MongoDB简介](#1. MongoDB简介)
- [2. 安装与配置](#2. 安装与配置)
- [3. 基本概念](#3. 基本概念)
- [4. CRUD操作](#4. CRUD操作)
- [5. 索引](#5. 索引)
- [6. 聚合管道](#6. 聚合管道)
- [7. 复制与分片](#7. 复制与分片)
- 总结
MongoDB基础知识点总览
目录
1. MongoDB简介
MongoDB是一个面向文档的NoSQL数据库,它使用JSON风格的文档来存储数据。它提供了高性能、高可用性和可扩展性。
示例代码:连接MongoDB
javascript
const { MongoClient } = require('mongodb');
const uri = "your_mongodb_uri";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
async function run() {
try {
await client.connect();
console.log("Connected successfully to server");
const database = client.db('your_database_name');
console.log("Connected correctly to database");
} finally {
await client.close();
}
}
run().catch(console.dir);
2. 安装与配置
安装MongoDB
- 在Linux上安装 :使用包管理器(如
apt
或yum
)。 - 在Windows上安装:从MongoDB官网下载并安装。
- 在macOS上安装:使用Homebrew。
配置MongoDB
- 配置文件路径:
/etc/mongod.conf
(Linux),mongod.cfg
(Windows)。 - 启动MongoDB服务:
sudo systemctl start mongod
(Linux),mongod --config <path_to_config>
(手动)。
3. 基本概念
- 文档(Document):MongoDB中的基本数据单元,类似于JSON对象。
- 集合(Collection):一组文档的集合。
- 数据库(Database):一个或多个集合的集合。
示例代码:创建数据库和集合
javascript
const { MongoClient } = require('mongodb');
const uri = "your_mongodb_uri";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
async function run() {
try {
await client.connect();
const database = client.db('test_database');
await database.createCollection('test_collection');
console.log("Database and collection created");
} finally {
await client.close();
}
}
run().catch(console.dir);
4. CRUD操作
插入文档(Create)
javascript
const document = { name: "Alice", age: 25, city: "New York" };
const result = await collection.insertOne(document);
console.log(`${result.insertedId} document inserted`);
读取文档(Read)
javascript
const documents = await collection.find({}).toArray();
console.log(documents);
更新文档(Update)
javascript
const filter = { name: "Alice" };
const update = { $set: { age: 26 } };
const result = await collection.updateOne(filter, update);
console.log(`${result.modifiedCount} document updated`);
删除文档(Delete)
javascript
const filter = { name: "Alice" };
const result = await collection.deleteOne(filter);
console.log(`${result.deletedCount} document deleted`);
5. 索引
索引用于提高查询性能。MongoDB支持多种类型的索引,包括单字段索引、复合索引、唯一索引等。
示例代码:创建索引
javascript
await collection.createIndex({ name: 1 }); // 1表示升序,-1表示降序
6. 聚合管道
聚合管道提供了对集合中的文档进行转换和聚合的功能。
示例代码:使用聚合管道
javascript
const pipeline = [
{ $match: { age: { $gte: 25 } } },
{ $group: { _id: "$city", total: { $sum: 1 } } },
{ $sort: { total: -1 } }
];
const results = await collection.aggregate(pipeline).toArray();
console.log(results);
7. 复制与分片
复制
MongoDB支持主从复制和副本集,以确保数据的高可用性。
分片
分片将数据分布到多个服务器上,以提高大数据集的性能和可扩展性。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录MongoDB基础知识点总览。