在 PyMongo 中使用 MongoDB 查询文档
在 PyMongo 中使用 MongoDB 查询文档需要先连接 MongoDB,创建数据库和集合,然后通过集合对象调用查询方法进行查询。
- 连接 MongoDB
可以使用 MongoClient 对象创建 MongoDB 连接,例如:
from pymongo import MongoClient client = MongoClient('localhost', 27017) # 或者使用 MongoDB URI 进行连接 # client = MongoClient('mongodb://localhost:27017/')
- 创建数据库和集合
可以使用 MongoClient 对象进行数据库和集合的创建,例如:
db = client['test'] # 创建数据库 collection = db['example'] # 创建集合
- 插入文档数据
可以使用集合对象进行文档的插入,例如:
data = { 'title': 'MongoDB 教程', 'description': 'MongoDB 是一个 NoSQL 数据库', 'by': 'pidancode.com', 'url': 'http://www.pidancode.com/mongodb-tutorial/' } # 插入单个文档 collection.insert_one(data) # 插入多个文档 data_list = [ { 'title' : 'Python 教程', 'description': 'Python 是一种高级编程语言', 'by': 'pidancode.com', 'url': 'http://www.pidancode.com/python-tutorial/' }, { 'title' : 'Java 教程', 'description': 'Java 是一种面向对象编程语言', 'by': 'pidancode.com', 'url': 'http://www.pidancode.com/java-tutorial/' } ] collection.insert_many(data_list)
- 查询文档数据
可以使用集合对象的查询方法进行文档的查询,例如:
查询集合中所有文档:
cursor = collection.find() for document in cursor: print(document) # 或者使用列表推导式 documents = [document for document in collection.find()] print(documents)
按条件查询文档:
# 查询 title 字段等于 "MongoDB 教程" 的文档 document = collection.find_one({'title': 'MongoDB 教程'}) print(document) # 查询 by 字段等于 "pidancode.com" 的文档 cursor = collection.find({'by': 'pidancode.com'}) for document in cursor: print(document) # 查询 title 字段包含 "教程" 的文档 cursor = collection.find({'title': {'$regex': '教程'}}) for document in cursor: print(document)
- 更新文档数据
可以使用集合对象的 update_one 或 update_many 方法进行文档的更新,例如:
# 将 title 字段等于 "MongoDB 教程" 的文档的 by 字段更新为 "皮蛋编程" query = {'title': 'MongoDB 教程'} update = {'$set': {'by': '皮蛋编程'}} collection.update_one(query, update)
- 删除文档数据
可以使用集合对象的 delete_one 或 delete_many 方法进行文档的删除,例如:
# 删除 title 字段等于 "Java 教程" 的文档 query = {'title': 'Java 教程'} collection.delete_one(query)
相关文章