使用python完成mongodb數據庫的增刪改查

      網友投稿 1045 2025-04-01

      使用Python遠程操作MongoDB數據庫

      沒有下載MongoDB朋友,可以看看ubuntu下載mongoDB

      1. mongdb和Python交互的模塊

      pymongo 提供了mongdb和python交互的所有方法

      使用python完成mongodb數據庫的增刪改查

      安裝方式: pip install pymongo

      2. 使用pymongo

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

      from pymongo import MongoClient client = MongoClient(host,port) # 如果是本地連接host,port參數可以省略 collection = client[db名][集合名] # collection = client.db名.集合名 # 與上邊用法相同

      1

      2

      3

      4

      5

      6

      from pymongo import MongoClient from urllib.parse import quote_plus user = '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名.集合名

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

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

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

      1

      2

      返回插入數據的_id

      ret = collection.insert({"name":"test10010","age":33}) print(ret)

      1

      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)

      1

      2

      3

      4

      5

      接收一個字典形式的條件,返回字典形式的整條數據

      如果條件為空,則返回第一條

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

      1

      2

      3

      4

      返回所有滿足條件的結果,如果條件為空,則返回全部

      結果是一個Cursor游標對象,是一個可迭代對象,可以類似讀文件的指針,但是只能夠進行一次讀取

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

      1

      2

      3

      4

      5

      語法:collection.update({條件}, {’$set’:{指定的kv或完整的一條數據}}, multi=False/True, upsert=False/True)

      multi參數:默認為False,表示更新一條; multi=True則更新多條; multi參數必須和$set一起使用

      upsert參數:默認為False; upsert=True則先查詢是否存在,存在則更新;不存在就插入

      $set表示指定字段進行更新

      data = {'msg':'這是一條完整的數據1','name':'哈哈'} client.test.test.update({'haha': 'heihei'}, {'$set':data}, upsert=True)

      1

      2

      data = {'msg':'這是一條完整的數據2','name':'哈哈'} # 該完整數據是先查詢后獲取的 client.test.test.update({}, {'$set':data}, multi=True, upsert=True)

      1

      2

      data = {'msg':'指定只更新msg___1'} client.test.test.update({}, {'$set':data}, upsert=True)

      1

      2

      data = {'msg':'指定只更新msg___2'} client.test.test.update({}, {'$set':data}, multi=True, upsert=True)

      1

      2

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

      1

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

      1

      3. pymongo模塊其他api

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

      小結

      掌握pymongo的增刪改查的使用

      掌握權限認證的方式使用pymongo模塊

      MongoDB Python 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何把兩個excel表合并成一個的教程(怎樣將兩個excel合并為一個表格里面)
      下一篇:excel表格中一步統計車輛歸屬地
      相關文章
      亚洲伦理一二三四| 午夜亚洲国产理论秋霞| 亚洲理论片在线观看| 亚洲AV区无码字幕中文色 | 国产成人亚洲综合色影视| 久久久久亚洲精品无码网址| 亚洲国产精品一区二区第四页| jzzijzzij在线观看亚洲熟妇| 亚洲AV无码AV男人的天堂不卡| 亚洲高清乱码午夜电影网| 亚洲精品无码成人| 亚洲a∨国产av综合av下载 | 亚洲人xxx日本人18| 亚洲中文字幕人成乱码| 亚洲综合校园春色| 亚洲熟妇丰满xxxxx| 亚洲AV无码男人的天堂| 伊人久久亚洲综合影院 | 亚洲国产夜色在线观看| 亚洲va乱码一区二区三区| 国产精品亚洲精品观看不卡| 亚洲熟妇无码八V在线播放| 亚洲av无码成人影院一区| 亚洲国产精品自产在线播放| 亚洲区小说区图片区| 亚洲欭美日韩颜射在线二| 亚洲va无码手机在线电影| 久久久久亚洲精品无码蜜桃| 亚洲精品白色在线发布| 亚洲 欧洲 自拍 另类 校园| 亚洲国产区男人本色| 亚洲AV无码专区日韩| 亚洲精品一级无码鲁丝片| 亚洲精品夜夜夜妓女网| 亚洲AV日韩AV天堂久久 | 亚洲色图综合在线| 精品国产_亚洲人成在线高清| 久久久久亚洲av无码专区喷水| 亚洲乱人伦精品图片| 亚洲人成网站999久久久综合| 国产精品日本亚洲777|