MongoDB是一个开源的、高性能、非关系型数据库。它使用BSON(二进制JSON)格式存储数据,具有灵活的数据模型和可扩展性。pymongo是MongoDB官方提供的Python驱动程序,它提供了一种灵活、强大的方式与MongoDB进行交互。
python开发里面也常用到MongoDB数据库,感觉类似个开放式的json格式的数据库,用键值对来存储数据,类型较少,键值对嘛,除了字符串就是数值了,就是层级可以无限套娃,以前有个野狗数据库,就是这样的,每个节点{}里面有个唯一的id。
# 安装过程
先从官网下载:https://www.mongodb.com/try/download/community-kubernetes-operator
然后就点击下一步默认进行安装就可以了。
选择完全安装即可。
选择进行网络服务模式的安装,就是默认的第一个。
安装默认的图形管理工具MongoDB Compass。
安装图形管理界面需要更多一些时间,几分钟而已。
安装结束会自动弹出图形管理器。
点击MongoDB图形管理器上的 connect开启数据库服务,默认链接地址是:localhost:27017。默认自带三个系统数据库:admin,config,local。
用浏览器打开地址localhost:27017。显式:
It looks like you are trying to access MongoDB over HTTP on the native driver port.
表示MongoDB数据库开启正常,数据库运行正常。MongoDB的数据库连接是:mongodb://localhost:27017
创建一个新的数据库Database Name是DatabaseNameIsOne,Collection Name是CollectionNameIsTwo。
其他保持默认。创建一个json文件:
导入到数据库里。
# 添加数据
使用代码插入数据,python代码是:
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017")
db = client["DatabaseNameIsOne"]
collection = db["CollectionNameIsTwo"]
user = {
"name": "andu",
"age": 20,
"email": "andu@g.com"
}
res = collection.insert_one(user)
print(res.inserted_id)
运行后,刷新数据库,数据库已经更新了:
# 查询数据
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017")
db = client["DatabaseNameIsOne"]
collection = db["CollectionNameIsTwo"]
user = {
"name": "andu",
"age": 20,
"email": "andu@g.com"
}
# res = collection.insert_one(user)
# print(res.inserted_id)
users = collection.find()
for user in users:
print(user)
users = collection.find()
for user in users:
print(user["name"])
users = collection.find({"age": 26})
for user in users:
print(user)
users = collection.find({"age": {"$gt": 20}})
for user in users:
print(user)
查询name中包含字母a的数据:
users = collection.find({"name": {"$regex": "a"}})
for user in users:
print(user)
# 去重,删除重复的andu的数据:
users = collection.find({"name": "andu"})
for index, user in enumerate(users):
if index != 0:
collection.delete_one(user)
# MongoDB查询集合的数量
count_documents()函数是pymongo中用于计数的方法之一,它接受一个查询条件作为参数,并返回符合条件的文档数量。
# 定义查询条件
query = {"age": {"$gt": 18}}
# 计算文档数量
count = collection.count_documents(query)
print(count)