python使用pymongo操作mongo的完整步骤

  • Post category:Python

下面我将详细讲解“python使用pymongo操作mongo的完整步骤”的完整攻略。

一、安装MongoDB和pymongo

首先需要安装MongoDB数据库和pymongo库。

1.安装MongoDB

可以在MongoDB官网下载数据库安装包,并按照提示安装。

2.安装pymongo

在终端执行以下命令:

pip install pymongo

二、连接MongoDB

连接MongoDB数据库需要使用pymongo库的MongoClient类。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")

以上代码会连接到本地的MongoDB数据库。如果MongoDB运行在其他机器上,那么需要将localhost修改为对应的IP地址。

三、创建数据库和集合

MongoDB中的数据库是由多个集合组成。在使用之前需要先创建好对应的数据库和集合。

假设我们需要创建一个名为test的数据库,其中包含一个名为student的集合,我们可以使用以下代码:

db = client["test"]
collection = db["student"]

当然,如果在执行插入语句时集合不存在,MongoDB会自动创建集合。

四、插入数据

插入数据使用集合的insert_one()和insert_many()方法。以插入单个数据为例:

student = {"name": "张三", "age": 18}
result = collection.insert_one(student)
print(result.inserted_id)

以上代码会向student集合中插入一条数据,其内容为一个字典对象。insert_one()方法会返回一个InsertOneResult对象,可以使用inserted_id属性获取插入的数据id。

五、查询数据

查询数据使用集合的find()方法。可以使用参数筛选需要查询的数据。例如,以下代码可以查询age等于18的学生的信息:

query = {"age": 18}
result = collection.find(query)
for x in result:
    print(x)

以上代码会查询出所有age等于18的学生数据,并依次输出。可以根据实际需要设置查询条件。

六、删除数据

删除数据使用集合的delete_one()和delete_many()方法。以删除单个数据为例:

query = {"name": "张三"}
result = collection.delete_one(query)
print(result.deleted_count)

以上代码会删除名称为“张三”的学生数据,并返回删除的数据数量。

七、更新数据

更新数据使用集合的update_one()和update_many()方法。以更新单个数据为例:

query = {"name": "张三"}
new_value = {"$set": {"age": 20}}
result = collection.update_one(query, new_value)
print(result.matched_count, result.modified_count)

以上代码会更新名称为“张三”的学生数据的年龄为20,并返回匹配的数据数量和修改的数据数量。

八、完整示例

下面是一个完整的示例代码,其中包含插入、查询、更新和删除数据的操作:

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["test"]
collection = db["student"]

student1 = {"name": "张三", "age": 18}
student2 = {"name": "李四", "age": 20}

result = collection.insert_many([student1, student2])
print(result.inserted_ids)

query = {"name": "张三"}
result = collection.find(query)
for x in result:
    print(x)

query_1 = {"age": 18}
query_2 = {"$set": {"age": 22}}
result = collection.update_many(query_1, query_2)
print(result.modified_count)

query = {"age": 20}
result = collection.delete_many(query)
print(result.deleted_count)

以上代码会插入两个学生数据,查询年龄为18的学生数据并输出,将年龄为18的学生的年龄更新为22,将年龄为20的学生数据删除。