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

ops/2025/3/19 9:47:26/

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

文章目录

  • MongoDB基础知识点总览
    • 目录
    • 1. MongoDB简介
      • 示例代码:连接MongoDB
    • 2. 安装与配置
      • 安装MongoDB
      • 配置MongoDB
    • 3. 基本概念
    • 4. CRUD操作
      • 插入文档(Create)
      • 读取文档(Read)
      • 更新文档(Update)
      • 删除文档(Delete)
    • 5. 索引
      • 示例代码:创建索引
    • 6. 聚合管道
      • 示例代码:使用聚合管道
    • 7. 复制与分片
      • 复制
      • 分片
  • 总结


MongoDB基础知识点总览

目录

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

1. MongoDB简介

MongoDB是一个面向文档的NoSQL数据库,它使用JSON风格的文档来存储数据。它提供了高性能、高可用性和可扩展性。

示例代码:连接MongoDB

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):一个或多个集合的集合。

示例代码:创建数据库和集合

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)

const document = { name: "Alice", age: 25, city: "New York" };
const result = await collection.insertOne(document);
console.log(`${result.insertedId} document inserted`);

读取文档(Read)

const documents = await collection.find({}).toArray();
console.log(documents);

更新文档(Update)

const filter = { name: "Alice" };
const update = { $set: { age: 26 } };
const result = await collection.updateOne(filter, update);
console.log(`${result.modifiedCount} document updated`);

删除文档(Delete)

const filter = { name: "Alice" };
const result = await collection.deleteOne(filter);
console.log(`${result.deletedCount} document deleted`);

5. 索引

索引用于提高查询性能。MongoDB支持多种类型的索引,包括单字段索引、复合索引、唯一索引等。

示例代码:创建索引

await collection.createIndex({ name: 1 }); // 1表示升序,-1表示降序

6. 聚合管道

聚合管道提供了对集合中的文档进行转换和聚合的功能。

示例代码:使用聚合管道

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基础知识点总览。


http://www.ppmy.cn/ops/166998.html

相关文章

C++之list类及模拟实现

目录 list的介绍 list的模拟实现 定义节点 有关遍历的重载运算符 list的操作实现 &#xff08;1&#xff09;构造函数 (2)拷贝构造函数 &#xff08;3&#xff09;赋值运算符重载函数 &#xff08;4&#xff09;析构函数和clear成员函数 &#xff08;5&#xff09;尾…

从C语言开始的C++编程生活(1)

前言 本系列文章承接C语言的学习&#xff0c;需要有C语言的基础才能学会哦。 第1篇主要讲的是有关于C的命名空间、输入和输出。 C才起步&#xff0c;都很简单呢&#xff01; 目录 前言 命名空间namespace 基本语法 作用 使用命名空间 域作用限定符 :: 基本语法 using n…

【错误解决】ollama使用huggingface拉取模型异常

ollama使用huggingface拉取模型异常 方法1 替换镜像网址&#xff0c;将hf.co替换为hf-mirror.com 如&#xff1a; ollama run hf.co/Polaris614/fortunetelling替换为&#xff1a; ollama run hf-mirror.com/Polaris614/fortunetelling方法2 开全局代理

第29周 面试题精讲(4)

Java面试题详解 一、简单工厂和工厂方法到底有哪些不同&#xff1f; 问题&#xff1a;简单工厂和工厂方法有哪些区别&#xff1f; 答案&#xff1a; 简单工厂&#xff1a; 通过一个工厂类实现对象创建&#xff0c;隐藏创建细节。所有对象创建基于一个方法&#xff0c;通过参…

轨迹优化 | 基于梯度下降的路径规划算法(附ROS C++/Python仿真)

目录 0 专栏介绍1 梯度下降路径规划2 代价势场生成方法3 算法仿真3.1 ROS C仿真3.2 Python仿真 0 专栏介绍 &#x1f525;课设、毕设、创新竞赛必备&#xff01;&#x1f525;本专栏涉及更高阶的运动规划算法轨迹优化实战&#xff0c;包括&#xff1a;曲线生成、碰撞检测、安全…

微软 LIDA 库:基于大模型的自动化数据分析与可视化

微软 LIDA 库&#xff1a;基于大模型的自动化数据分析与可视化 一、核心架构与 LLM 交互流程 #mermaid-svg-UzSwZNKPlgrJUpej {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UzSwZNKPlgrJUpej .error-icon{fill:#5…

【原创】使用ElasticSearch存储向量实现大模型RAG

一、概述 检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;RAG&#xff09;已成为大型语言模型&#xff08;LLM&#xff09;应用的重要架构&#xff0c;通过结合外部知识库来增强模型的回答能力&#xff0c;特别是在处理专业领域知识、最新信息或企业私有数…

再学:函数可见性、特殊函数、修饰符

目录 1.可见性 2.合约特殊函数 constructor && getter 3. receive && fallback 4.view && pure 5.payable 6.自定义函数修饰符 modifier 1.可见性 public&#xff1a;内外部 private&#xff1a;内部 external&#xff1a;外部访问 internal&…