【自学笔记】MongoDB基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


MongoDB基础知识点总览

目录

  1. MongoDB简介
  2. 安装与配置
  3. 基本概念
  4. CRUD操作
  5. 索引
  6. 聚合管道
  7. 复制与分片

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上安装 :使用包管理器(如aptyum)。
  • 在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基础知识点总览。

相关推荐
这个DBA有点耶33 分钟前
数据库教程:从零基础到实战的完整学习路径(2026版)
数据库·程序员·代码规范
forestsea1 小时前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
probex_2 小时前
从 ByConity 到 VictoriaMetrics:一次指标数据迁移引发的四种存储对比
数据库
商业白皮书2 小时前
杭州企业做 GEO 怎么选服务商?B2B 制造、外贸出海与品牌连锁选型指南
笔记
商业白皮书2 小时前
密不透风的瑕疵防线:东集SEV400视觉传感器,定义“轻量化”精准检测
笔记
Patrick在香港2 小时前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据
这个DBA有点耶2 小时前
自增主键用尽了怎么办?INT溢出、在线迁移与预防策略全解析
数据库·mysql·代码规范
老纪的技术唠嗑局3 小时前
Agent 习惯性删库跑路,数据库纷纷学 Git 续命
数据库·人工智能
Data_Journal3 小时前
使用 AutoScraper 进行网页抓取:分步教程
大数据·开发语言·数据库·python·scrapy
白远山4 小时前
健身场馆无人自动化解决方案:从架构到落地实践
java·开发语言·数据库·数据挖掘·需求分析