MongoDB快速入门

打印 上一主题 下一主题

主题 916|帖子 916|积分 2748

目次
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 服务器:
  1.  mongosh  mongo(旧版本)
复制代码
若要连接到长途服务器或指定端口,可以利用以下下令:
  1.  mongosh "mongodb://<hostname>:<port>"
复制代码
例如,连接到 192.168.1.100 服务器的 27017 端口:
  1.  mongosh "mongodb://192.168.1.100:27017"
复制代码
2,查看全部数据库
  1.  show dbs
复制代码
3,利用或切换数据库
如果指定的数据库不存在,MongoDB 会在你第一次向其中插入数据时创建它。
  1.  use <database_name>
复制代码
例如,利用名为 testdb 的数据库:
  1.  use testdb
复制代码
4,删除当前利用的数据库
  1.  db.dropDatabase()
复制代码
集合操纵

1,查看当前数据库中的全部集合
  1.  show collections
复制代码
2,创建集合
可以利用 createCollection 方法显式创建集合,也可以在插入文档时自动创建集合。
  1.  db.createCollection("users")
复制代码
3,删除集合
  1. db.<collection_name>.drop()
复制代码
例如,删除 users 集合:
  1. db.users.drop()
复制代码
文档操纵

1,插入文档
插入单个文档:
  1. db.users.insertOne({
  2.     "name": "John",
  3.     "age": 30,
  4.     "email": "john@example.com"
  5. })
复制代码
插入多个文档:
  1. db.users.insertMany([
  2.     {
  3.         "name": "Alice",
  4.         "age": 25,
  5.         "email": "alice@example.com"
  6.     },
  7.     {
  8.         "name": "Bob",
  9.         "age": 35,
  10.         "email": "bob@example.com"
  11.     }
  12. ])
复制代码
2,查询文档
查询全部文档:
  1. db.users.find()
复制代码
根据条件查询文档:
  1. db.users.find({ "age": { $gt: 25 } })
复制代码
上述查询会返回 age 大于 25 的全部文档。
查询单个文档:
  1. db.users.findOne({ "name": "John" })
复制代码
3,更新文档
更新单个文档:
  1. db.users.updateOne(
  2.     { "name": "John" },
  3.     { $set: { "age": 31 } }
  4. )
复制代码
上述操纵会将 name 为 John 的文档的 age 字段更新为 31。
更新多个文档:
  1. db.users.updateMany(
  2.     { "age": { $gt: 30 } },
  3.     { $set: { "isSenior": true } }
  4. )
复制代码
该操纵会将全部 age 大于 30 的文档的 isSenior 字段设置为 true。
4,删除文档
1,删除单个文档
  1. db.users.deleteOne({ "name": "Bob" })
复制代码
2,删除多个文档
  1. db.users.deleteMany({ "age": { $lt: 20 } })
复制代码
索引操纵

1,创建索引
  1. db.users.createIndex({ "name": 1 })
复制代码
上述下令会在 users 集合的 name 字段上创建一个升序索引。
2,查看索引
  1. db.users.getIndexes()
复制代码
3,删除索引
  1. db.users.dropIndex({ "name": 1 })
复制代码
聚合操纵

聚合操纵可以对文档举行分组、统计等操纵。以下是一个简单的聚合示例,统计每个年事段的用户数量:
  1.  db.users.aggregate([
  2.      {
  3.          $group: {
  4.              _id: "$age",
  5.              count: { $sum: 1 }
  6.          }
  7.      }
  8.  ])
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我可以不吃啊

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表