Python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
安装MongoDB
-
官网下载MongoDB Community Server安装文件,https://www.mongodb.com/download-center/community 选择对应系统版本进行下载。
-
安装MongoDB
-
Windows:使用默认安装路径进行安装即可,如需修改可自定义路径。
-
Linux(以Ubuntu为例):
-
导入公钥:
wget -qO - https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add -
- 编辑源文件
/etc/apt/sources.list.d/mongodb-org-4.0.list
,添加deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse
。 - 更新apt-get,安装MongoDB:
sudo apt-get update;sudo apt-get install -y mongodb-org
Python3操作MongoDB数据库
-
安装Python3以及pymongo包
-
Windows:下载安装Python3,并使用pip安装pymongo包:
pip install pymongo
-
Linux:Ubuntu系列版本自带Python3,可以使用apt-get安装pymongo包:
sudo apt-get install python3-pymongo
-
连接MongoDB
-
Python3代码:
import pymongo
# 连接MongoDB数据库
client = pymongo.MongoClient('mongodb://localhost:27017/')
其中,'mongodb://localhost:27017/'表示连接本机MongoDB服务端,并且MongoDB服务端端口号为27017。
-
插入数据
-
Python3代码:
# 获取要插入的collection
col = client['test']['user']
# 插入单条数据
col.insert_one({"name":"Tom", "age":18})
# 插入多条数据
data_list = [{"name":"Alice", "age":20}, {"name":"James", "age":22}]
col.insert_many(data_list)
其中,col.insert_one表示插入单条数据,col.insert_many表示插入多条数据,data_list为待插入的数据列表。
-
查询数据
-
Python3代码:
# 查询所有数据
result = col.find()
# 条件查询数据
result = col.find({"name":"Tom"})
# 获取单条数据
result = col.find_one()
# 获取多条数据
result = col.find().limit(2)
for r in result:
print(r)
其中,find表示查询集合中所有数据,find({"name":"Tom"})表示查询集合中name为Tom的数据。find_one表示查询单条数据,find().limit(2)表示查询两条数据。最后,通过迭代获取查询结果。
示例1
假设我们要创建一个学生信息管理系统,其中每个学生的信息包括姓名、年龄、班级等。使用MongoDB存储这些信息的话,我们可以创建一个名为'student'的collection,在其中插入每个学生的信息数据。
import pymongo
# 连接MongoDB数据库
client = pymongo.MongoClient('mongodb://localhost:27017/')
# 获取要插入的collection
col = client['test']['student']
# 插入学生信息
data_list = [
{"name":"小明", "age":18, "class":"高一一班"},
{"name":"小红", "age":17, "class":"高一一班"},
{"name":"小刚", "age":18, "class":"高一二班"},
{"name":"小帅", "age":17, "class":"高一二班"},
]
col.insert_many(data_list)
# 查询所有学生信息
result = col.find()
print("所有学生信息:")
for r in result:
print(r)
执行上述代码,可得到输出结果如下:
所有学生信息:
{'_id': ObjectId('5d8d3c357f7afa47b82f5f74'), 'name': '小明', 'age': 18, 'class': '高一一班'}
{'_id': ObjectId('5d8d3c357f7afa47b82f5f75'), 'name': '小红', 'age': 17, 'class': '高一一班'}
{'_id': ObjectId('5d8d3c357f7afa47b82f5f76'), 'name': '小刚', 'age': 18, 'class': '高一二班'}
{'_id': ObjectId('5d8d3c357f7afa47b82f5f77'), 'name': '小帅', 'age': 17, 'class': '高一二班'}
上述结果中,'_id'是MongoDB中默认生成的主键,其他字段是我们插入的学生信息。
示例2
再假设我们现在需要查询一下所有年龄为18岁的学生信息,我们可以使用条件查询的方式进行。
# 查询年龄为18岁的学生信息
result = col.find({"age":18})
print("年龄为18岁的学生信息:")
for r in result:
print(r)
执行上述代码,可得到输出结果如下:
年龄为18岁的学生信息:
{'_id': ObjectId('5d8d3c357f7afa47b82f5f74'), 'name': '小明', 'age': 18, 'class': '高一一班'}
{'_id': ObjectId('5d8d3c357f7afa47b82f5f76'), 'name': '小刚', 'age': 18, 'class': '高一二班'}
上述结果中,符合条件的学生信息被查询出来并输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例 - Python技术站