用 Python 畅玩 Line bot - 13:MongoDB 操作

连接资料库与资料表

连接到对应的资料库与资料表:

import pymongomyclient = pymongo.MongoClient('mongodb+srv://<username>:<password>@cluster0.4ejzf.gcp.mongodb.net/test') # 要连结到的 connect stringmydb = myclient["资料库名称"] # 指定资料库mycol = mydb["资料表名称"] # 指定资料表

新增

在已有的资料表建立一笔新的资料:

x = mycol.insert_one({"PlayerName": "Testname","PlayerId":1,"Status": 0,"Data": []})print(x.inserted_id) # 输出该新增资料的 id 编号

在已有的资料表建立多笔新的资料:

players_list = [{"PlayerName": "Testname1","PlayerId":1,"Status": 0,"Data": []},{"PlayerName": "Testname2","PlayerId":1,"Status": 0,"Data": []},{"PlayerName": "Testname3","PlayerId":2,"Status": 0,"Data": []}]x = mycol.insert_many(players_list)print(x.inserted_id) # 输出所有新增资料的 id 编号

在已有的资料表建立多笔指定 id 的新的资料:

players_list = [{ "_id": 1, "PlayerName": "Testname1","PlayerId":1,"Status": 0,"Data": []},{ "_id": 2, "PlayerName": "Testname2","PlayerId":1,"Status": 0,"Data": []},{ "_id": 3, "PlayerName": "Testname3","PlayerId":2,"Status": 0,"Data": []}]x = mycol.insert_many(players_list)print(x.inserted_id) # 输出所有新增资料的 id 编号

删除

删除符合条件的一笔资料:

mycol.delete_one({"PlayerId":event.source.user_id})

删除符合条件的多笔资料:

del_players = { "PlayerName": {"$regex": "^F"} } #删除所有 PlayerName 栏位中以 F 开头的资料 x = mycol.delete_many(del_players) print(x.deleted_count, "笔资料删除完毕")

当不给予 delete_many() 任何条件时,会删除资料表内所有资料

x = mycol.delete_many({}) print(x.deleted_count, "笔资料删除完毕")

查询

当不给予 find_one() 条件,则输出第一笔资料

x = mycol.find_one() print(x)

搜寻所有的资料

for x in mycol.find():  print(x)

搜寻所有资料的部分栏位,0为不显示,1为显示,除了 id 以外不可同时指定两个栏位分别为0 与 1:

for x in mycol.find({},{ "_id": 0, "PlayerName": 1, "Status": 1 }):  print(x)

搜寻符合指定条件的栏位

mydoc = mycol.find({ "PlayerName": "Testname1" })

只回传指定数量的搜寻结果

myresult = mycol.find().limit(3)for x in myresult:  print(x)

修改

只修改符合条件的第一笔资料

myquery = { "Status": "0" }newvalues = { "$set": { "Status": "1" } } mycol.update_one(myquery, newvalues)

修改符合条件的所有资料

myquery = { "Status": "0" }newvalues = { "$set": { "Status": "1" } } mycol.update_many(myquery, newvalues)

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章