当前位置: 首页 > news >正文

mongodb nosql数据库笔记

MongoDB 简介

MongoDB 是一个开源的 NoSQL 数据库,采用文档存储模型(BSON 格式,类似 JSON),支持高灵活性、水平扩展和高性能的数据操作。与传统关系型数据库(如 MySQL)不同,MongoDB 无需预定义表结构,适合处理半结构化或非结构化数据。


MongoDB 核心特性

文档模型
数据以文档形式存储,每个文档包含键值对,嵌套结构支持复杂数据类型。示例文档:

{"_id": ObjectId("507f191e810c19729de860ea"),"name": "Alice","age": 30,"address": {"city": "New York","zip": "10001"}
}

高性能
支持索引、聚合管道和内存映射文件,读写速度快。

// 创建索引
db.users.createIndex({ name: 1 });

水平扩展(分片)
通过分片(Sharding)将数据分布到多个服务器,支持海量数据存储。

高可用性
副本集(Replica Set)提供自动故障转移和数据冗余。


基础操作

插入数据

db.users.insertOne({name: "Bob",age: 25,hobbies: ["reading", "hiking"]
});

查询数据

// 查找所有年龄大于 20 的用户
db.users.find({ age: { $gt: 20 } });// 使用聚合管道分组统计
db.users.aggregate([{ $group: { _id: "$city", count: { $sum: 1 } } }
]);

更新数据

db.users.updateOne({ name: "Bob" },{ $set: { age: 26 } }
);

删除数据

db.users.deleteOne({ name: "Alice" });

适用场景

  1. 实时分析:快速处理日志、传感器数据等时序数据。
  2. 内容管理:灵活存储文章、评论等嵌套内容。
  3. 物联网(IoT):高效存储设备生成的异构数据。
  4. 移动应用:支持离线同步和灵活的数据模型变更。

不适用场景

  1. 复杂事务:需跨文档强一致性时(尽管 MongoDB 4.0+ 支持多文档事务,但性能受限)。
  2. 高度结构化数据:固定表结构且关系复杂的场景(如财务系统)。

安装与工具

  1. 官方下载:从 MongoDB官网 获取社区版。
  2. 命令行工具mongosh(MongoDB Shell)。
  3. GUI工具:MongoDB Compass、Robo 3T。

性能优化建议

  1. 合理设计索引,避免全表扫描。
  2. 使用投影(Projection)限制返回字段。
  3. 分片键选择需均匀分布数据。
  4. 监控慢查询日志(db.setProfilingLevel(2))。
// 查看慢查询
db.system.profile.find().sort({ millis: -1 }).limit(10);
http://www.xdnf.cn/news/731593.html

相关文章:

  • 系统架构中的组织驱动:康威定律在系统设计中的应用
  • Bean对象循环依赖
  • 尚硅谷redis7 90-92 redis集群分片之集群扩容
  • 智慧工厂整体解决方案
  • 基于地理特征金字塔的层次化AI定位方案:从人脑推理到卫星图谱的跨尺度匹配
  • 晨控CK-UR08与欧姆龙PLC配置Ethernet/IP通讯连接操作手册
  • React从基础入门到高级实战:React 高级主题 - 性能优化:深入探索与实践指南
  • MOT challenge使用方法及数据集说明
  • 01 redis 的环境搭建
  • dockers搭建mysql环境
  • GraalVM加持下的Quarkus极速启动
  • 华为交换机S12708常用命令
  • 尚硅谷-尚庭公寓部署文档
  • 什么是“会来事”?
  • OpenInventor 介绍和使用指南
  • @Async 注解 走的是主线程 还是子线程呢
  • 开源协议:构建全球技术协作的基石
  • 判断它是否引用了外部库
  • LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)认证
  • 对 AI Agent 定义的一些探讨
  • 《TCP/IP 详解 卷1:协议》第2章:Internet 地址结构
  • Java EE初阶——网络初识
  • 关于表连接
  • 星际巡航-第16届蓝桥第6次STEMA测评Scratch真题第4题
  • RedisTemplate查询不到redis中的数据问题(序列化)
  • 【数据库】并发控制
  • 什么是AI Agent?大白话新手教学
  • JAVA单商户易联云小票打印替换模板
  • ISOLAR软件生成报错处理(七)
  • css实现文字渐变