文档数据库服务

基于Python开发

2025-07-01 07:54:38

环境依赖

Python通过PyMongo库来为文档数据库服务提供统一访问接口,应用程序可基于PyMongo进行数据操作,PyMongo支持SSL连接,内部通过连接池的方式支持多线程应用。

可以通过如下方式安装PyMongo:

pip install pymongo

基于python连接数据库

安装pymongo

pip install pymongo

使用SSL证书连接

from pymongo import MongoClient
import ssl

# 指定文档数据库的连接URI
uri = "mongodb://username:password@hostname:port/database_name?ssl=true&authSource=admin"

# 创建SSL上下文
context = ssl.create_default_context(cafile="/path/to/ca.pem")
context.load_cert_chain("/path/to/client.pem", keyfile="/path/to/client.key")

# 创建客户端
client = MongoClient(uri, ssl_certfile="/path/to/client.pem", ssl_keyfile="/path/to/client.key", ssl_ca_certs="/path/to/ca.pem", ssl_cert_reqs=ssl.CERT_REQUIRED, ssl_context=context)

# 获取数据库实例
database = client["testdb"]

# 获取集合实例
collection = database["testcollection"]

# 插入文档
document = {"name": "John Doe", "age": 30, "email": "johndoe@example.com"}
collection.insert_one(document)

# 查询文档
query = {"name": "John Doe"}
result = collection.find_one(query)
print(result)

# 关闭连接
client.close()

无证书连接

from pymongo import MongoClient

# 指定数据库的连接URI
uri = "mongodb://username:password@hostname:port/database_name?authSource=admin"

# 创建客户端
client = MongoClient(uri)

# 获取数据库实例
database = client["testdb"]

# 获取集合实例
collection = database["testcollection"]

# 插入文档
document = {"name": "John Doe", "age": 30, "email": "johndoe@example.com"}
collection.insert_one(document)

# 查询文档
query = {"name": "John Doe"}
result = collection.find_one(query)
print(result)

# 关闭连接
client.close()

基于python访问数据库

访问DataBase

database = client["testdb"]

访问集合

collection = database["testcollection"]

显示的创建一个集合

gold_member_conllection = database.create_collection("gold_member")

插入数据

document = {"name": "ff", "age": 30, "email": "ff11@ctyun.com"}
gold_member_conllection.insert_one(document)

删除数据

result = collection.delete_one({'name': 'ff'})

删除collection

database.drop_collection("test")

读数据

query = {"name": "ff"}
result = collection.find_one(query)
print(result)

运行命令

database.command("collstats","test")
database.command("buildinfo")

计数

count = gold_member_conllection.find().count()

排序

results = gold_member_conllection.find().sort('name',1)

创建索引

result=database[gold_member_conllection].create_index([('name',1)])

基于python开发完整示例

from pymongo import MongoClient

# 指定数据库的连接URI
uri = "mongodb://username:password@hostname:port/database_name?authSource=admin"

# 创建客户端
client = MongoClient(uri)

# 获取数据库实例
database = client["testdb"]

# 获取集合实例
collection = database["testcollection"]

# 创建集合
gold_member_conllection = database.create_collection("gold_member")

# 插入文档
document = {"name": "ff", "age": 30, "email": "ff11@ctyun.com"}
gold_member_conllection.insert_one(document)

# 删除数据
result = collection.delete_one({'name': 'ff'})

# 删除collection
database.drop_collection("test")

# 查询文档
query = {"name": "ff"}
result = collection.find_one(query)
print(result)

# 运行命令
database.command("collstats","test")
database.command("buildinfo")

# 计数
count = gold_member_conllection.find().count()

# 排序
results = gold_member_conllection.find().sort('name', pymongo.ASCENDING)

#创建索引
result=database[gold_member_conllection].create_index([('name',1)])

# 关闭连接
client.close()


r_iRdWK24tJi