目录
1. MongoDB简介
MongoDB是一种NoSQL数据库管理系统,采用文档数据库模型,由MongoDB Inc.开发并发布。作为一个面向文档的数据库,MongoDB的数据存储形式类似于JSON对象,适合存储结构化、半结构化和非结构化数据。
以下是MongoDB的一些特点和优势:
-
灵活的数据模型: MongoDB使用了类似于JSON格式的文档存储数据,这意味着每个文档可以具有不同的结构,而不像传统的关系型数据库需要遵循固定的表结构。
-
高性能: MongoDB具有出色的性能特性,支持快速的查询操作和数据读写。它还提供了内置的分片和复制功能,以实现水平扩展和高可用性。
-
强大的查询语言: MongoDB支持丰富的查询表达能力,包括范围查询、正则表达式、聚合操作等,以满足各种数据查询需求。
-
自动分片和负载均衡: MongoDB能够自动将数据分布到多个节点中,实现数据的分片存储,并通过负载均衡来提高整体性能和可扩展性。
-
容易部署和管理: MongoDB的部署和管理相对简单,具有较低的维护成本。它提供了丰富的工具和文档,帮助用户轻松管理数据库。
-
社区支持和生态系统: MongoDB拥有庞大的开发者社区和丰富的生态系统,用户可以获得大量的资源、工具和支持。
-
适用于大数据和实时数据处理: MongoDB适用于大规模数据存储和实时数据处理场景,如大型网站、应用程序后端、日志存储等。
尽管MongoDB具有许多优势,但在选择数据库系统时,需要根据具体的项目需求和情况来评估是否适合使用MongoDB。对于某些特定的应用场景,如需要复杂的事务支持或强一致性要求的系统,可能需要考虑传统的关系型数据库系统。
MongoDB级别组织:集合Collection——相当于表;文档——相当于列
2.MongoDB安装
下载MongoDB并安装配置环境变量,同MySQL配置类似,在此不做详述。
配置完成后按住win+r键,输入cmd回车,在弹出的黑窗口输入以下代码,回车输入密码,若显示以下图片极为安装成功。
3.MongoDB操作
3.1 数据库相关
1.显示所有数据库
输入一下代码,回车,如图所示的就是现有的数据库,为系统自带,不可随意修改。
show dbs
2.创建数据库
输入以下代码创建数据库,如果数据库不存在,则创建并使用,数据库存在则切换。
创建完成后重新查看数据库,不会显示,因为此时数据库为空。
use datas
3.删除数据库
先使用上述语句切换到要删除的数据库,然后进行删除操作,注意:mongo数据库区分大小写。
db.dropdataBase()
3.2 集合相关
1.查看所有集合
show collections
2.创建集合
创建一个名为teacher的集合,可以创建也可以不创建,使用到某个集合时会自动创建该集合。
db.createCollection("teacher")
3.删除集合
# db.集合名.drop()
db.teacher.drop()
3.3数据相关
1.插入数据
插入数据时,注意MongoDB是非关系型数据库,可以插入不同的形式。插入时自动创建id。
(1)插入:可以插入一个或多个,注意是“字典”格式
db.teacher.insert({"name":"t1"})
(2)插入一个
db.teacher.insertOne({"name":"t2"})
(3)插入多个
可以插入不同结构数据。
db.teacher.insertMany([{"name":"t4","age":25},{"name":"t3"}])
2.查询数据
(1)查询所有
db.teacher.find()
(2)查询一个
db.teacher.findOne()
3.修改数据
(1)修改:将逗号前面的集合修改为逗号后面的,再次查询可以看出修改成功
db.teacher.update({"name":"t1"},{"age":15})
(2)修改一个
db.teacher.updateOne({"name":"t4"},{$set:{"age":55}})
(3)修改多个:
将“age”为10 的集合的name修改为“abcd”
db.teacher.updateMany({"age":20},{$set: {"name":"abcd"} })
4.删除数据
(1)删除一个
db.teacher.deleteOne({"age":15})
(2)删除多个:将“age”为20的集合删除
db.teacher.deleteMany({"age":20})
4.MongoDB查询
1.比较运算符
$gt | grate than | > |
$gte | grate than equal | >= |
$lt | less than | < |
$lte | less than equal | <= |
$ne | not equal | != |
用法:
db.teacher.find({"age":{$gt:20}})
db.teacher.find({"age":{$gte:20}})
2.逻辑运算符
(1)并且
> db.teacher.find({"age":10,"age":20})
(2)or
db.teacher.find({$or: [{"age":15},{"age":20}] })
(3)成员in
db.teacher.find({"age":{$in:[15, 20]}})
(4)正则,详见正则使用
# 查找名字中以t开头
db.teacher.find({"name":/^t/})
(5)自定义
# 查找年龄大于18
db.teacher.find({$where:function(){return this.age > 18}})
5.MongoDB常用技术
1.排序
# 1为正序
db.teacher.find().sort({"age":1})
# -1为逆序
db.teacher.find().sort({"age":-1})
2.分页
(1)显示个数
db.teacher.find().limit(3)
(2)从几开始显示几个
db.teacher.find().limit(3).skip(2)
3.统计个数
db.teacher.count()
4.投影
db.teacher.find({}, {"name":1})
db.teacher.find({}, {"age":1})
db.teacher.find({}, {"_id":0})
5.聚合
对数据进行处理,将上一阶处理结果转交给下一阶
db.orders.aggregate([
{
$project: {
total: { $multiply: ["$quantity", "$price"] },
item: 1
}
},
{
$group: {
_id: "$item",
totalSales: { $sum: "$total" }
}
}
])
6.Python与MongoDB
1.使用模块pymongo
终端安装命令:
pip install pymongo
2.使用流程
1.导入模块
2.创建连接
3.找到数据库
4.找到集合
5.增删改查操作
6.关闭连接
# 1.导入模块
import pymongo
# 2.构建连接
client = pymongo.MongoClient()
# 3.找到数据库
db = client.get_database("datas")
# 4.找到集合
collection = db.get_collection("teacher")
# 5.增删改查操作
# 查找
cursor = collection.find()
for data in cursor:
print(data)
# 6.关闭连接
cursor.close()
标签:MongoDB,age,数据库,db,就够,find,篇文章,teacher
From: https://blog.csdn.net/m0_63865649/article/details/136632344