日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

三、mongodb数据库系列——mongodb和python交互 总结

發布時間:2024/7/5 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三、mongodb数据库系列——mongodb和python交互 总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、mongodb和python交互

學習目標
  • 掌握 mongdb和python交互的增刪改查的方法
  • 掌握 權限認證的方式使用pymongo模塊

  • 1. mongdb和python交互的模塊

    pymongo 提供了mongdb和python交互的所有方法
    安裝方式: pip install pymongo

    2. 使用pymongo

    2.1 導入pymongo并選擇要操作的集合

    數據庫和集合能夠自動創建

    2.1.1 無需權限認證的方式創建連接對象以及集合操作對象
    from pymongo import MongoClientclient = MongoClient(host,port) # 如果是本地連接host,port參數可以省略collection = client[db名][集合名] # collection = client.db名.集合名 # 與上邊用法相同
    2.1.2 需要權限認證的方式創建連接對象以及集合操作對象
    from pymongo import MongoClient from urllib.parse import quote_plususer = 'python' # 賬號 password = 'python' # 密碼 host = '127.0.0.1' # host port = 27017 # port uri = "mongodb://%s:%s@%s" % (quote_plus(user),quote_plus(password),host) # quote_plus函數:對url進行編碼 # uri = mongodb://python:python@127.0.0.1 client = MongoClient(uri, port=port) collection = client.db名.集合名

    2.2 insert()添加數據

    insert可以批量的插入數據列表,也可以插入一條數據

    collection.insert({一條數據}) collection.insert([{數據一},{數據二}])
    2.2.1 添加一條數據

    返回插入數據的_id

    ret = collection.insert({"name":"test10010","age":33}) print(ret)
    2.2.2 添加多條數據

    返回ObjectId對象構成的列表

    item_list = [{"name":"test1000{}".format(i)} for i in range(10)] rets = collection.insert(item_list) print(rets) for ret in rets:print(ret)

    2.3 find_one()查找一條數據

    接收一個字典形式的條件,返回字典形式的整條數據
    如果條件為空,則返回第一條

    ret = client.test.test.find_one({'name': 'test10001'}) print(ret) # 包含mongodb的ObjectId對象的字典 _ = ret.pop('_id') # 清除mongodb的ObjectId對象的k,v print(ret)

    2.4 find()查找全部數據

    返回所有滿足條件的結果,如果條件為空,則返回全部
    結果是一個Cursor游標對象,是一個可迭代對象,可以類似讀文件的指針,但是只能夠進行一次讀取

    rets = collection.find({"name":"test10005"})for ret in rets:print(ret) for ret in rets: #此時rets中沒有內容print(ret)

    2.5 update()更新數據(全文檔覆蓋或指定鍵值,更新一條或多條)

    • 語法:collection.update({條件}, {’$set’:{指定的kv或完整的一條數據}}, multi=False/True, upsert=False/True)
    • multi參數:默認為False,表示更新一條; multi=True則更新多條; multi參數必須和$set一起使用
    • upsert參數:默認為False; upsert=True則先查詢是否存在,存在則更新;不存在就插入
    • $set表示指定字段進行更新
    2.5.1 更新一條數據;全文檔覆蓋;存在就更新,不存在就插入
    data = {'msg':'這是一條完整的數據1','name':'哈哈'} client.test.test.update({'haha': 'heihei'}, {'$set':data}, upsert=True)
    2.5.2 更新多條數據;全文檔覆蓋;存在就更新,不存在就插入
    data = {'msg':'這是一條完整的數據2','name':'哈哈'} # 該完整數據是先查詢后獲取的 client.test.test.update({}, {'$set':data}, multi=True, upsert=True)
    2.5.3 更新一條數據;指定鍵值;存在就更新,不存在就插入
    data = {'msg':'指定只更新msg___1'} client.test.test.update({}, {'$set':data}, upsert=True)
    2.5.4 更新多條數據;指定鍵值;存在就更新,不存在就插入
    data = {'msg':'指定只更新msg___2'} client.test.test.update({}, {'$set':data}, multi=True, upsert=True)

    2.6 delete_one()刪除一條數據

    collection.delete_one({"name":"test10010"})

    2.7 delete_many()刪除全部數據

    collection.delete_many({"name":"test10010"})

    代碼演示:

    from pymongo import MongoClient# 創建數據庫鏈接對象 client = MongoClient('localhost',27017)# 選擇一個數據庫 db = client['admin'] db.authenticate('root','root')# 選擇一個集合 col = client['pydata']['test']# 插入數據 # col.insert_one({"class":"python37"}) # col.insert([{"class":"python36"},{"class":"python38"},{"class":"python39"},{"class":"python40"}])# 查詢 # print(col.find()) # for data in col.find(): # print(data) # print("_________________________________") # print(col.find_one())# 更新 # 全文檔覆蓋更新 # col.update({"class":"python37"},{"message":"hello World!"}) # col.update({},{"$set":{"id":"xxxxx-xxx"}}) # col.update({},{"$set":{"id":"xxxxx-xxx"}},multi=True) # col.update({"message":"helloWorld!"},{"$set":{"id":"xxxxx-xxx1"}},upsert=True) # col.update({"message":"hello"},{"$set":{"id":"xxxxx-xxx2"}},upsert=True)# 刪除 # col.delete_one({"message":"hello"}) col.delete_many({"id":"xxxxx-xxx"})for data in col.find():print(data)

    3. pymongo模塊其他api

    查看pymongo官方文檔或源代碼 http://api.mongodb.com/python/current/

    小結

  • 掌握pymongo的增刪改查的使用
  • 掌握權限認證的方式使用pymongo模塊

  • 二、總結

    總結

    以上是生活随笔為你收集整理的三、mongodb数据库系列——mongodb和python交互 总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。