Python 连接Mongodb数据库进行增删改查(CRUD)基本操作
一、安装驱动pymongo
pip3 install pymongo
二、创建数据库和集合
创建数据库需要使用 MongoClient
对象,并且指定连接的URL
地址和要创建的数据库名
。
#-*- coding:utf-8 -*-
import pymongo
# 链接本地客户端
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
# 创建数据库
paperdb = myclient["db_name"]
# 得到collection
col = paperdb["table"]
list_collection_names()
返回一个list,获取当前链接中所有的集合名称。(可用于判断要创建的集合是否已经存在)
三、添加
insert_one()
插入一条数据,args:
字典
insert_many()
插入多条数据,,args:
字典列表,形如[{},{},{}]
**Ps:**如果我们在插入文档时没有指定 _id,MongoDB 会为每个文档添加一个唯一的 id。
# 将`json`文件中的数据导入到mongodb中。
def insert_mongodb():
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
paperdb = myclient["paper"]
collection = paperdb["wheat1"]
# x = collection.insert_many(items)
with open('../data/ok.json', 'r', encoding="utf-8")as f:
line = json.load(f)
collection.insert(line)
f.close()
四、删除
1、删除文档
delete_one()
删除一个,可传入query对象(字典对象)。
delete_many()
删除多个,同样的可以传入query对象。
- 如果传入空对象,则会删除当前集合中的所有文档
2、删除集合
drop()
删除一个集合。
五、修改
update(query, 更新值)
可传入两个参数,第一个为query查询的条件,第二个是需要修改的字段。
-
update_one()
更新一条 -
update_many()
更新多条
# 将属性“bid”值为bid的文档执行更新操作,修改或添加(如果她们没有该属性)"bname"属性,并将值设置为“豫农418”
col.update({'bid': str(bid)}, {'$set': {"bname": "豫农418"}})
六、查询
find(args)
返回集合中所有(符合条件)的数据.
args
可以以json字符串的形式进行封装。- 例如:查询
bid
为1的文档 col.find({"bid":1})
- 例如:查询
limit(num)
指定返回条数,和MySQL数据库中的limit类似。
# 将集合中所有文档的字段放入一个set容器中,最后进行输出
def analyze_field():
# 连接
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
# 数据库
paperdb = myclient["paper"]
# 集合
col = paperdb["wheat1"]
# set容器(无重复)
s = set()
# 对集合中的所有数据进行遍历
for x in col.find():
for key in x:
s.add(key)
for p in s:
print(p)
参考文章
https://www.runoob.com/python3/python-mongodb.html
https://www.jianshu.com/p/a625b704c307