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

MongoDB快速入门

目录

1 什么是MongoDB

1.1 MongoDB的特点

2 基本概念

3 安装与配置

4 MongoDB操作指令

连接与数据库操作

集合操作

文档操作

索引操作

聚合操作


1 什么是MongoDB

        MongoDB是一个基于分布式文件存储的开源数据库系统属于NOSQL(非关系型数据库)的范畴,它以高性能,高可扩展性和灵活的数据模型而受到广泛关注。

1.1 MongoDB的特点

1,灵活的数据模型:

        采用文档型数据模型,模型以BSON(二进制的json)文档形式存储,文档的结构可以动态变化,不同文档可以有不同的字段,这使得数据的存储和处理更加灵活。

2,高性能:

        支持高效的读写操作,通过内存映射文件和索引机制,能够快速处理大量数据。同时,MongoDB还支持水平扩展,可以通过分片将数据分布到多个服务器上,提高系统的处理能力。

3,高可扩展性:

        易于进行水平扩展,通过添加更多的服务器节点来处理不断增加的数据量和用户需求,支持副本集,提供数据的冗余和高可用性,当主节点出现故障时,副本集可以自动选举新的主节点。

4,丰富的查询功能:

        支持强大的查询语句,包括范围查询,正则表达式查询,地理空间查询,能够满足各种负责的查询需求。

2 基本概念

1,文档(Document)

        MongoDB 中数据的基本存储单元,类似于关系型数据库中的一行记录。文档由键值对组成,键是字符串,值可以是各种数据类型,如字符串、数字、数组、嵌套文档等。

2,集合(Collection)

        一组文档的集合,类似于关系型数据库中的表。集合中的文档可以有不同的结构,但通常具有相似的用途。

3,数据库(Database)

        多个集合的容器,一个 MongoDB 实例可以包含多个数据库,每个数据库可以包含多个集合。

3 安装与配置

        MongoDB 提供了不同操作系统的安装包,你可以从官方网站(Download MongoDB Community Server | MongoDB)下载适合你操作系统的版本,并按照安装向导进行安装,详细操作请查看MongoDB的安装配置教程(很详细,你想要的都在这里)_mongodb安装-CSDN博客

4 MongoDB操作指令

连接与数据库操作

1,连接到 MongoDB 服务器

在命令行中使用 mongosh(MongoDB 6.0 及以上版本)或 mongo(旧版本)连接到本地 MongoDB 服务器:

 mongosh  mongo(旧版本)

若要连接到远程服务器或指定端口,可以使用以下命令:

 mongosh "mongodb://<hostname>:<port>"

例如,连接到 192.168.1.100 服务器的 27017 端口:

 mongosh "mongodb://192.168.1.100:27017"

2,查看所有数据库

 show dbs

3,使用或切换数据库

如果指定的数据库不存在,MongoDB 会在你第一次向其中插入数据时创建它。

 use <database_name>

例如,使用名为 testdb 的数据库:

 use testdb

4,删除当前使用的数据库

 db.dropDatabase()

集合操作

1,查看当前数据库中的所有集合

 show collections

2,创建集合

可以使用 createCollection 方法显式创建集合,也可以在插入文档时自动创建集合。

 db.createCollection("users")

3,删除集合

db.<collection_name>.drop()

例如,删除 users 集合:

db.users.drop()

文档操作

1,插入文档

插入单个文档:

db.users.insertOne({
    "name": "John",
    "age": 30,
    "email": "john@example.com"
})

插入多个文档:

db.users.insertMany([
    {
        "name": "Alice",
        "age": 25,
        "email": "alice@example.com"
    },
    {
        "name": "Bob",
        "age": 35,
        "email": "bob@example.com"
    }
])

2,查询文档

查询所有文档:

db.users.find()

根据条件查询文档:

db.users.find({ "age": { $gt: 25 } })

上述查询会返回 age 大于 25 的所有文档。

查询单个文档:

db.users.findOne({ "name": "John" })

3,更新文档

更新单个文档:

db.users.updateOne(
    { "name": "John" },
    { $set: { "age": 31 } }
)

上述操作会将 nameJohn 的文档的 age 字段更新为 31。

更新多个文档:

db.users.updateMany(
    { "age": { $gt: 30 } },
    { $set: { "isSenior": true } }
)

该操作会将所有 age 大于 30 的文档的 isSenior 字段设置为 true

4,删除文档

1,删除单个文档

db.users.deleteOne({ "name": "Bob" })

2,删除多个文档

db.users.deleteMany({ "age": { $lt: 20 } })

索引操作

1,创建索引

db.users.createIndex({ "name": 1 })

上述命令会在 users 集合的 name 字段上创建一个升序索引。

2,查看索引

db.users.getIndexes()

3,删除索引

db.users.dropIndex({ "name": 1 })

聚合操作

聚合操作可以对文档进行分组、统计等操作。以下是一个简单的聚合示例,统计每个年龄段的用户数量:

 db.users.aggregate([
     {
         $group: {
             _id: "$age",
             count: { $sum: 1 }
         }
     }
 ])

相关文章:

  • 大白话React第十章React 前沿技术在企业级应用中的深度实践
  • 从FLM获取算法进行DAP脱机烧录踩坑解决总结
  • 市场成本趋势-新指标-找到成本高度集中处布局-抓主升或趋势行情,识别出货还是洗盘
  • (十 四)趣学设计模式 之 策略模式!
  • Mysql-如何理解事务?
  • JDBC 进阶
  • vulnhub靶场之【kioptrix-5】靶机
  • 纯电动商用车核心性能评价方法实现
  • uniapp 测试 IPA 包安装到测试 iPhone
  • 如何使用Docker搭建哪吒监控面板程序
  • java2025热点面试题之springmvc
  • C# 类型转换
  • vue3:四嵌套路由的实现
  • 学Java第三十天------------多态
  • 20250226-代码笔记05-class CVRP_Decoder
  • 【无人机】无人机通信模块,无人机图数传模块的介绍,数传,图传,图传数传一体电台,
  • 什么是HA
  • keil主题(vscode风格)
  • ClickHouse
  • P1123 取数游戏
  • 网站建设服务非常好湖南岚鸿公司/简述什么是seo及seo的作用
  • 台州专业网站设计系统/线上推广宣传方式有哪些
  • 政务咨询投诉举报网站建设/关键词优化排名的步骤
  • 小程序开发免费平台/优就业seo
  • 代做cad平面图的网站/网络营销推广方式有哪些
  • 桦甸网站开发定制/推广关键词如何优化