1. 程式人生 > 資料庫 >Python操作mongodb資料庫的方法詳解

Python操作mongodb資料庫的方法詳解

本文例項講述了Python操作mongodb資料庫的方法。分享給大家供大家參考,具體如下:

安裝pymongo

下載pymongo:

https://pypi.python.org/packages/82/26/f45f95841de5164c48e2e03aff7f0702e22cef2336238d212d8f93e91ea8/pymongo-3.4.0.tar.gz#md5=aa77f88e51e281c9f328cea701bb6f3e

安裝pymongo:

解壓後,cmd進入pymongo安裝包資訊目錄,輸入:python setup.py install 即可

在idle中可以成功導進該木塊說明ok了。

>>import pymongo
>>

python操作mongodb

#匯入pymongo木塊
>>> import pymongo as p
#連線mongodb
>>> client =p.MongoClient('localhost',27017)
#檢視mongodb有多少資料庫
>>> client.database_names ()
['liyue','local','test']
#連線具體某個資料庫
>>> db1 =client.liyue
>>> db2 =client.test
#檢視該資料庫下所有集合
>>> db2.collection_names ()
['col','test']
#for迴圈遍歷檢視集合中的文件:檢視col集合中第2條資料。
>>> for i in db2.col.find().limit(1).skip(1):
    print(i)
{'interests': ['balls','basketball',12.0],'_id': ObjectId('583bb6dc8fbf0aee1d9c94bf'),'name': 'Tom','sex': 'girl'}
#清空集合,刪除集合中所有資料
>>> db1.col.remove ({})
{'ok': 1,'n': 0}
#檢視是否清空成功查詢
>>> for i in db1.col.find():
    print(i)
#插入一個文件(一條資料)
>>> db1.col.insert ({'name':"python介面測試","date":"today","age":"15","like":100})
ObjectId('5840fa9bbbd6900a787ac386')
#檢視插入是否成功查詢
>>> for i in db1.col.find():
    print(i)
{'name': 'python介面測試','age': '15','_id': ObjectId('5840fa9bbbd6900a787ac386'),'date': 'today','like': 100}
#插入多個文件
>>> documents =[{"name":"liy","age":"10"},{"name":"haha","age":"30"},{"name":"huhu","age":"20"}]
>>> db1.col.insert(documents)
[ObjectId('5840fb6bbbd6900a787ac387'),ObjectId('5840fb6bbbd6900a787ac388'),ObjectId('5840fb6bbbd6900a787ac389')]
#檢視插入的查詢
>>> for i in db1.col.find().limit(3).skip(1):
    print(i)
{'age': '10','_id': ObjectId('5840fb6bbbd6900a787ac387'),'name': 'liy'}
{'age': '30','_id': ObjectId('5840fb6bbbd6900a787ac388'),'name': 'haha'}
{'age': '20','_id': ObjectId('5840fb6bbbd6900a787ac389'),'name': 'huhu'}
#檢視資料按and連線條件查詢
>>> for i in db1.col.find({"name":"liy","age":"10"}):
    print(i)
{'age': '10','name': 'liy'}
#檢視資料以age欄位倒序查詢
>>> for i in db1.col.find().sort([("age",-1)]):
    print(i)
{'age': '30','name': 'huhu'}
{'age': '10','name': 'liy'}
#更新已有文件資料
>>> db1.col.update ({"name":"huhu"},{"$set":{"name":"dongdong"}})
{'updatedExisting': True,'ok': 1,'nModified': 1,'n': 1}
>>> for i in db1.col.find({"name":"dongdong"}):
    print(i)
{'age': '20','name': 'dongdong'}
#按條件刪除某條資料
>>> db1.col.remove ({"name":"dongdong"})
{'ok': 1,'n': 1}
>>> db1.col.find({"name":"dongdong"})
<pymongo.cursor.Cursor object at 0x00000000045B6828>
>>> for i in db1.col.find({"name":"dongdong"}):
    print(i)

應用於介面測試中:

介面自動化測試中如果要防止髒資料的影響,需要清除已有的資料再進行介面測試。最後一次介面測試用例插入的資料沒有清除的,保留在mongo中的,這剛好為下一個介面提供資料關聯。

import json
import requests
import unittest
import pymongo
class MyTest(unittest.TestCase):#封裝測試環境的初始化和還原的類
  def setUp(self):
    self.client = pymongo.MongoClient('192.168.12.250',27017)  #連線mongodb
    self.db = client.dsp_online    #獲取具體某個資料庫
    self.db.Qualification.remove({})  #清空Qualification這個集合所有資料
    print("start test")
  def tearDown(self):
    self.client.colse()        #關閉資料庫連線
    print("end test")
    pass
class test_qualification_add(MyTest):#把這個介面封裝一個類,下面的方法是具體的測試用例
  '''介面名稱:增加資質'''
  def test_qualification_add(self):
    '''測試用例1:'''
    url = "http://audit.sf.katcin.com/audit/api/qualification/add"
    headers ={"Content-Type":"application/json"}
    data = {
    "token":"abcdefg",'pid': '1','param': {
      'Name': '我的資質1','QualificationId': 50,'Email': '[email protected]','SiteName': '10001','Materials': [
        {
          'Url': 'http://i9b482c85e06a5145410870.jpg','TypeId':1,}
      ],'AdxInfo': [{
          'AdxId': 10008,#渠道Id
          'Industry': 8000,#行業分類
          'FullIndustry':[5301],#行業分類集合
          'BrandName': '行業分類:電腦',#品牌名稱
          'Memo': '渠asd',}
       ]
      }
     }
    r = requests.post(url = url,json = data,headers = headers)
    #return r.json()
    print(r.text)
    #result = r.json()
    print(r.status_code)
    self.assertIn("true",r.text)
if __name__=="__main__":
  unittest.main()

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python常見資料庫操作技巧彙總》、《Python數學運算技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。