目次
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 "mongodb://<hostname>:<port>"
复制代码 例如,连接到 192.168.1.100 服务器的 27017 端口:
- mongosh "mongodb://192.168.1.100:27017"
复制代码 2,查看全部数据库
3,利用或切换数据库
如果指定的数据库不存在,MongoDB 会在你第一次向其中插入数据时创建它。
例如,利用名为 testdb 的数据库:
4,删除当前利用的数据库
集合操纵
1,查看当前数据库中的全部集合
2,创建集合
可以利用 createCollection 方法显式创建集合,也可以在插入文档时自动创建集合。
- db.createCollection("users")
复制代码 3,删除集合
- db.<collection_name>.drop()
复制代码 例如,删除 users 集合:
文档操纵
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({ "age": { $gt: 25 } })
复制代码 上述查询会返回 age 大于 25 的全部文档。
查询单个文档:
- db.users.findOne({ "name": "John" })
复制代码 3,更新文档
更新单个文档:
- db.users.updateOne(
- { "name": "John" },
- { $set: { "age": 31 } }
- )
复制代码 上述操纵会将 name 为 John 的文档的 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,查看索引
3,删除索引
- db.users.dropIndex({ "name": 1 })
复制代码 聚合操纵
聚合操纵可以对文档举行分组、统计等操纵。以下是一个简单的聚合示例,统计每个年事段的用户数量:
- db.users.aggregate([
- {
- $group: {
- _id: "$age",
- count: { $sum: 1 }
- }
- }
- ])
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |