环境依赖
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()