在 Python 中使用 PyMongo 执行 MongoDB 查询操作
首先需要安装 PyMongo,可以使用以下命令:
pip install pymongo
然后连接 MongoDB 数据库,可以使用以下代码:
from pymongo import MongoClient # 连接到 MongoDB 数据库 client = MongoClient('localhost', 27017) # 获取数据库对象 db = client['mydb'] # 获取集合对象 my_collection = db['mycollection']
查询文档可以使用 find()
方法,例如:
# 查询所有文档 docs = my_collection.find() for doc in docs: print(doc) # 查询特定的文档 query = {'name': 'pidancode.com'} doc = my_collection.find_one(query) print(doc)
可以在查询语句中使用查询操作符,例如:
# 筛选 name 属性等于 pidancode.com 或 age 属性大于 18 的文档 query = {'$or': [{'name': 'pidancode.com'}, {'age': {'$gt': 18}}]} docs = my_collection.find(query) for doc in docs: print(doc)
可以使用正则表达式进行模糊查询,例如:
# 查询 name 属性包含“编程”的文档 query = {'name': {'$regex': '编程'}} docs = my_collection.find(query) for doc in docs: print(doc)
还可以对查询结果进行排序、限制数量等操作,例如:
# 查询 name 属性等于 pidancode.com 或 age 属性大于 18 的文档,并按照 age 属性降序排序,限制返回数量为 5 query = {'$or': [{'name': 'pidancode.com'}, {'age': {'$gt': 18}}]} docs = my_collection.find(query).sort('age', -1).limit(5) for doc in docs: print(doc)
完整的代码示例:
from pymongo import MongoClient # 连接到 MongoDB 数据库 client = MongoClient('localhost', 27017) # 获取数据库对象 db = client['mydb'] # 获取集合对象 my_collection = db['mycollection'] # 查询所有文档 docs = my_collection.find() for doc in docs: print(doc) # 查询特定的文档 query = {'name': 'pidancode.com'} doc = my_collection.find_one(query) print(doc) # 筛选 name 属性等于 pidancode.com 或 age 属性大于 18 的文档 query = {'$or': [{'name': 'pidancode.com'}, {'age': {'$gt': 18}}]} docs = my_collection.find(query) for doc in docs: print(doc) # 查询 name 属性包含“编程”的文档 query = {'name': {'$regex': '编程'}} docs = my_collection.find(query) for doc in docs: print(doc) # 查询 name 属性等于 pidancode.com 或 age 属性大于 18 的文档,并按照 age 属性降序排序,限制返回数量为 5 query = {'$or': [{'name': 'pidancode.com'}, {'age': {'$gt': 18}}]} docs = my_collection.find(query).sort('age', -1).limit(5) for doc in docs: print(doc)
相关文章