在 Python 中使用 PyMongo 执行 MongoDB 查询操作

2023-04-15 00:00:00 查询 执行 操作

首先需要安装 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)

相关文章