首页 > 数据库 >MongoDB 基础

MongoDB 基础

时间:2023-12-30 11:11:42浏览次数:46  
标签:collectionName MongoDB db 查询 文档 基础 集合

MongoDB 是一个高性能、开源、面向文档的数据库,设计用于存储大量的数据。它使用类似于 JSON 的 BSON 格式来存储数据,这使得数据结构更加灵活,可以存储复杂的类型,如数组和嵌套文档。

基本概念

  1. 文档 (Document):MongoDB 的数据结构是基于文档的,一个文档是一个键值对的集合,类似于 JSON 对象。每个文档都有一个唯一的标识符,称为 _id 字段。
  2. 集合 (Collection):集合是 MongoDB 中存储文档的容器。一个集合可以包含多个文档,这些文档具有相似的结构。
  3. 数据库 (Database):数据库是 MongoDB 中存储集合的容器。一个数据库可以包含多个集合。

增删改查语句

  1. 查询 (Query)

    • 查询一个集合中的所有文档:db.collectionName.find()
    • 查询满足特定条件的文档:db.collectionName.find({ field: value })
    • 使用查询操作符:db.collectionName.find({ field: { $operator: value } })
  2. 插入 (Insert)

    • 插入一个新文档:db.collectionName.insert({ field1: value1, field2: value2 })
    • 插入多个新文档:db.collectionName.insert([{...}, {...}])
  3. 更新 (Update)

    • 更新一个文档:db.collectionName.update({ _id: ObjectId("...") }, { $set: { field1: value1 } })
    • 使用更新操作符:db.collectionName.update({ _id: ObjectId("...") }, { $operator: value })
  4. 删除 (Delete)

    • 删除一个文档:db.collectionName.remove({ _id: ObjectId("...") })db.collectionName.deleteOne({ _id: ObjectId("...") })
    • 删除多个文档:db.collectionName.remove({ field: value })db.collectionName.deleteMany({ field: value })
  5. 聚合 (Aggregation)

    • 聚合管道操作符用于处理数据并返回结果。例如,$group, $match, $sort 等。
  6. 索引 (Index)

    • 在 MongoDB 中,索引用于提高查询性能。通过创建索引,MongoDB 可以快速定位到特定的数据。常见的索引类型有单字段索引、复合索引等。
  7. 聚合管道

    • MongoDB 的聚合框架允许你执行复杂的分析操作,如分组、过滤、排序和转换数据。
  8. 地理空间查询

    • MongoDB 支持地理空间查询,允许你基于地理位置检索数据。例如,使用 $near, $within, 和 $geoIntersects 等操作符。
  9. 文本搜索

    • MongoDB 的文本搜索功能允许你在集合中执行全文搜索。你可以使用 $text 操作符来执行文本搜索查询。
  10. 连接 (Joins)

  • MongoDB 支持跨集合的连接操作,允许你结合来自不同集合的数据。这通常通过使用聚合管道来完成。
  1. 存储过程
  • MongoDB 也支持存储过程,允许你编写一段代码并在数据库中保存它,以便以后可以调用它来执行特定的操作。
  1. 安全性和认证
  • MongoDB 支持用户认证和访问控制,确保只有经过授权的用户才能访问数据库中的数据。你可以设置用户角色和权限来控制对数据的访问。
  1. 复制和分片
  • MongoDB 支持复制集和分片,以提供高可用性和可扩展性。复制集允许多个节点保持数据副本,而分片则允许将数据分布到多个节点上以提高性能和容量。
  1. 监控和日志记录
  • MongoDB 提供各种监控工具和日志记录功能,帮助你跟踪数据库的性能和活动,以便及时发现和解决问题。
  1. 使用 Cursors
  • MongoDB 使用游标来遍历查询结果。游标提供了一种迭代遍历查询结果的方法,并允许你执行各种操作,如投影、排序和限制返回的文档数量。
  1. 更新文档版本
  • MongoDB 支持文档版本控制,通过 $set$setOnInsert 操作符来更新或插入文档时可以指定版本号。如果版本号不匹配,更新将被拒绝。这有助于实现乐观锁机制。

标签:collectionName,MongoDB,db,查询,文档,基础,集合
From: https://www.cnblogs.com/Uni-Hoang/p/17936156.html

相关文章

  • Web3的未来:DePIN项目引领物理基础设施的去中心化革命
    Web3的未来:DePIN项目引领物理基础设施的去中心化革命在Web3的沉寂市场中,人们逐渐回归冷静,专注于项目的研究、探索与精心的布局,期待着牛市的到来。在Web3的世界里,一直有句话:“选新不选旧,熊市布局,牛市狂欢”。在前一轮牛市中,像Solana、Polygon这样的新公链项目提前两年崭露头角,创造了......
  • 01.软件测试基础概念
    目录 软件测试软件测试作用软件缺陷软件测试原则软件测试对象测试用例软件测试 通过手工或者工具对“被测对象”进行测试验证实际结果与预期结果之间是否存在差异软件测试作用 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产......
  • 2023-2024-1 20231414 《计算机基础与程序设计》第十四周学习总结
    学期(2023-2024-1)学号(20231414)《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1-计算机基础与程序设计)这个作业的目标<写上具体方面>自学教......
  • C++基础 -13- 类的字节对齐
    ———————标准输入输出——————— ......
  • Java的基础知识
    一、Java类的封装访问修饰符:在Java中,可以使用访问修饰符来限制对类、类的成员变量和方法的访问权限。常用的访问修饰符包括:public:公共访问修饰符,表示可以被任何类访问。private:私有访问修饰符,表示只能在当前类内部访问。protected:受保护访问修饰符,表示只能在当前类及其子类......
  • JAVA语言基础内容2
    一.类的封装封装是面向对象编程中的一种重要概念,它指的是将类的内部数据和实现细节隐藏起来,只暴露必要的接口供外部使用。封装通过限制对类的直接访问,提高了代码的安全性和可维护性,并使得类的实现细节可以更灵活地变化而不影响外部代码。封装的关键点包括:访问控制:封装通过访......
  • 2023-2024-1 20231420 《计算机基础与程序设计》第十四周学习总结
    2023-2024-120231420《计算机基础与程序设计》第十四周学习总结1.作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标学习《C语言程序设计》第13章并完成云班课测......
  • Linux的一些基础概念解释
    1.前言最近在做Linux系统相关的工作,但是自己对于Linux系统的了解太过片面,所以这里记录一下工作期间所遇到的Linux的一些基础概念的解释 2.Linux相关基础概念2.1.fstab什么是fstabfstab是filesystemtable的意思,即文件系统表。它在开机的时候告诉系统挂载哪些分区、挂载点......
  • java基础语言期末复习
    一.类的封装1.类的封装是指将类的实现细节隐藏起来,仅向外部提供有限的接口进行访问。这样可以保护数据的安全性和完整性,同时也能够降低代码的耦合度。具体来说,类的封装可以通过以下方式实现:将类的成员变量设为私有属性,只能在类的内部访问。对于需要被外部访问的成员变量,可以......
  • DePIN:去中心化基础设施的新篇章
    来源:DePIN:去中心化基础设施的新篇章DePIN,一个融合了去中心化基础设施与区块链技术、代币经济的创新领域,正逐渐成为推动Web3.0时代变革的重要力量。这个赛道完美地适应了crypto的特性,利用区块链技术解决确权、验证等问题,而代币经济则激发了更多参与者的热情,构建起强大的网络效应。De......