Python之MongoDB实操

2022-07-04 17:00:53 浏览数 (1)

最近几篇文章都是讲的Mongo, 也是想趁这个机会把Mongo的使用的一些技巧总结并分享一下,今天的文章是围绕着Python如何来连接Mongo服务操作MongoDB,如果你正在工作或学习中使用Python并且也正好在使用MongoDB,相信对大家有益处。

我们在使用Python操作MongoDB时需要借助第三方的一个工具库,所以我们需要先安装,命令如下: python -m pip install pymongo (如果你配置好了pip 的环境变量也可用pip install pymongo).

直接上代码,大家可以基于前面文章提到的搭建MongoDB的服务来实战检验一下代码。

代码语言:javascript复制
import pymongo

def getcol():
    myclient = pymongo.MongoClient('mongodb://127.0.0.1:27017/')#连接mongodb服务
    mydb=myclient["admin"] #选择要连接的数据库名
    mydb.authenticate("tony","123456")#数据库账号及密码验证
    mycollection=mydb["test"]#执行要在操作的集合,不存就创建
    print(mydb.list_collection_names())#打印出选择连接的数据库中的表
    return mycollection #返回当前连接的集合

def mongo_insert(params): #插入数据
    mycol=getcol()
    if(type(params)==dict):#判断插入的数据是一条还是多条,dict就是一条,list就是多条
        mycol.insert_one(params)
    elif(type(params)==list):
        mycol.insert_many(params)

def mongo_find(): #查询数据
    mycol=getcol()
    for doc in mycol.find(): #查询所有数据
        print(doc)
    for doc in mycol.find({},{"_id":0,"name":1,"age":1}): #查询返回指定字段的数据
        print(doc)
    myselect={"name":"tony"}
    for doc in mycol.find(myselect):#查询返回指定条件的数据
        print(doc)

def mongo_delete():#删除集合中的数据
    mycol=getcol()
    myselect={"name":"tony"}
    mycol.delete_one(myselect)#删除单条数据
    mycol.delete_many({}) #删除所有数据

def mongo_update():#修改集合中的数据
    mycol=getcol()
    myselect = {"name": "tony"}#查询条件
    newvalue = {"$set": {"age": "35"}}#变更的内容
    mycol.update(myselect,newvalue)


if __name__=="__main__":
    mydict = {"name": "tony", "age": "22", "sex": "man"}
    mylist = [
        {"name": "tom", "age": "100", "sex": "man"},
        {"name": "jim", "age": "101", "sex": "woman"},
        {"name": "lucy", "age": "10", "sex": "woman"},
        {"name": "lily", "age": "103", "sex": "woman"},
        {"name": "dido", "age": "109", "sex": "man"}
    ]
    mongo_insert(mylist)
    mongo_find()
    mongo_update()
    mongo_delete()

总结:今天的文章是通过Python来实现针对MongoDB的增删改查等操作,这也是最基础的,最实用的操作。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。

0 人点赞