ToB企服应用市场:ToB评测及商务社交产业平台
标题:
MongoDB快速入门
[打印本页]
作者:
我可以不吃啊
时间:
前天 21:33
标题:
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 } }
)
复制代码
上述操纵会将 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,查看索引
db.users.getIndexes()
复制代码
3,删除索引
db.users.dropIndex({ "name": 1 })
复制代码
聚合操纵
聚合操纵可以对文档举行分组、统计等操纵。以下是一个简单的聚合示例,统计每个年事段的用户数量:
db.users.aggregate([
{
$group: {
_id: "$age",
count: { $sum: 1 }
}
}
])
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4