Python操作MongoDB的教程详解(插,查,改,排,删)

  • Post category:Python

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中的文档。