Python操作MongoDB的教程详解
简介
MongoDB是一种非关系型数据库,也称为NoSQL数据库。其用于存储JSON样式文档,而非关系型数据库一般用于存储表格化数据,如MySQL。Python中,PyMongo是用于连接MongoDB的库。
安装
安装PyMongo时,可使用pip安装。命令如下:
pip install pymongo
连接MongoDB
使用PyMongo连接MongoDB数据库,首先需要导入pymongo库。然后,定义客户端对象并连接MongoDB。最后,指定要使用的数据库。
示例代码:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
插入文档
要向MongoDB插入文档,可以使用insert_one()方法或insert_many()方法。insert_one()方法用于插入一条文档。insert_many()方法用于插入多条文档。
示例代码:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
# 插入单条文档
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)
# 插入多条文档
mylist = [
{ "name": "Amy", "address": "Apple st 652"},
{ "name": "Hannah", "address": "Mountain 21"},
{ "name": "Michael", "address": "Valley 345"},
{ "name": "Sandy", "address": "Ocean blvd 2"},
{ "name": "Betty", "address": "Green Grass 1"},
{ "name": "Richard", "address": "Sky st 331"}
]
x = mycol.insert_many(mylist)
查询文档
要从MongoDB中查询文档,可以使用find()方法。find()方法返回一个结果集对象,可以使用for循环遍历结果集并输出文档内容。
示例代码:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
更新文档
要更新MongoDB中的文档,可以使用update_one()方法或update_many()方法。update_one()方法用于更新匹配到的第一条文档。update_many()方法用于更新匹配到的所有文档。
示例代码:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
# 更新单条文档
myquery = { "address": "Valley 345" }
newvalues = { "$set": { "address": "Canyon 123" } }
mycol.update_one(myquery, newvalues)
# 更新多条文档
myquery = { "address": { "$regex": "^S" } }
newvalues = { "$set": { "name": "Minnie" } }
x = mycol.update_many(myquery, newvalues)
print(x.modified_count, "文档已修改")
删除文档
要从MongoDB中删除文档,可以使用delete_one()方法或delete_many()方法。delete_one()方法用于删除匹配到的第一条文档。delete_many()方法用于删除匹配到的所有文档。
示例代码:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
# 删除单条文档
myquery = { "address": "Mountain 21" }
mycol.delete_one(myquery)
# 删除多条文档
myquery = { "address": {"$regex": "^S"} }
x = mycol.delete_many(myquery)
print(x.deleted_count, "文档已删除")
以上示例代码展示了Python操作MongoDB的常见操作。通过这些代码,可以实现插入、查询、更新和删除MongoDB中的文档。