(一)安装 Python MongoDB 驱动程序
-
安装MongoDB驱动(在 Python 中使用 MongoDB 之前必须先安装用于访问数据库的驱动程序)
pip install pymongo -i https://pypi.tuna.tsinghua.edu.cn/simple
(二)检查驱动
-
在 python 交互模式下导入 pymongo,检查驱动是否已正确安装:
import pymongo
(三)创建连接(连接到MongoDB)
-
使用驱动连接到 MongoDB 集群只需要指定 MongoDB 连接字符串即可。其基本格式可以参考官方文档:Connection Strings - MongoDB Manual v8.0
-
最简单的形式:mongodb://数据库服务器主机地址:端口号
-
如:mongodb://127.0.0.1:27017
-
使用python连接mongodb示例:
from pymongo import MongoClient uri = "mongodb://127.0.0.1:27017" client = MongoClient(uri) print(client)
(四)创建数据库
-
创建名为testdb的数据库
mydb = client['testdb'] -
创建名为sites的集合
mycol = mydb['sites']
(五)插入数据
-
插入单条数据
mydict = {"name": "Google", "alexa": "1", "url": "https://www.google.com" } x = mycol.insert_one(mydict) print(x1.inserted_id) -
插入多条数据
mylist = [ {"name": "Taobao", "alexa": "100", "url": "https://www.taobao.com"}, {"name": "QQ", "alexa": "101", "url": "https://www.qq.com"}, {"name": "Facebook", "alexa": "10", "url": "https://www.facebook.com"}, {"name": "知乎", "alexa": "103", "url": "https://www.zhihu.com"}, {"name": "Github", "alexa": "109", "url": "https://www.github.com"} ] x = mycol.insert_many(mylist) print(x2.inserted_ids)
(六)查询数据
-
查询集合第一条数据
x = mycol.find_one() print(x) -
查询集合所有数据
for x in mycol.find(): print(x) -
查询指定字段数据
for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }): print(x) -
根据指定条件查询
myquery = { "name": "RUNOOB" } mydoc = mycol.find(myquery) for x in mydoc: print(x) -
返回指定条数记录
myresult = mycol.find().limit(3) # 输出结果 for x in myresult: print(x)
(七)修改数据
-
修改其中一条数据
myquery = { "alexa": "10000" } newvalues = { "$set": { "alexa": "12345" } } mycol.update_one(myquery, newvalues) # 输出修改后的 "sites" 集合 for x in mycol.find(): print(x) -
修改多条数据
myquery = { "name": { "$regex": "^F" } } newvalues = { "$set": { "alexa": "123" } } x = mycol.update_many(myquery, newvalues) print(x.modified_count, "文档已修改")
(八)删除数据
-
删除一条文档
myquery = { "name": "Taobao" } mycol.delete_one(myquery) # 删除后输出 for x in mycol.find(): print(x) -
删除多条文档
myquery = { "name": {"$regex": "^F"} }
x = mycol.delete_many(myquery) #删除所有 name 字段中以 F 开头的文档
print(x.deleted_count, "个文档已删除")
-
删除集合所有文档
x = mycol.delete_many({})
print(x.deleted_count, "个文档已删除")
-
删除集合
mycol.drop()
(九)总结

697

被折叠的 条评论
为什么被折叠?



