Python连接Mongodb数据库进行增删改查(CRUD)基本操作

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

发布了148 篇原创文章 · 获赞 52 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/m0_38072683/article/details/103989651