gpt4 book ai didi

Python操作mongodb数据库的方法详解

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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 即可 。

Python操作mongodb数据库的方法详解

在idle中可以成功导进该木块说明ok了.

?
1
2
>> import pymongo
>>

python操作mongodb 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#导入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' , '_id' : ObjectId( '5840fb6bbbd6900a787ac387' ), 'name' : 'liy' }
#查看数据以age字段倒序查询
>>> for i in db1.col.find().sort([( "age" , - 1 )]):
     print (i)
{ 'age' : '30' , '_id' : ObjectId( '5840fb6bbbd6900a787ac388' ), 'name' : 'haha' }
{ 'age' : '20' , '_id' : ObjectId( '5840fb6bbbd6900a787ac389' ), 'name' : 'huhu' }
{ 'age' : '10' , '_id' : ObjectId( '5840fb6bbbd6900a787ac387' ), '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' , '_id' : ObjectId( '5840fb6bbbd6900a787ac389' ), '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中的,这刚好为下一个接口提供数据关联.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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' : '1111@163.com' ,
       '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程序设计有所帮助.

原文链接:https://blog.csdn.net/JOJOY_tester/article/details/53424667 。

最后此篇关于Python操作mongodb数据库的方法详解的文章就讲到这里了,如果你想了解更多关于Python操作mongodb数据库的方法详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com