- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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 即可 。
在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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
大家好,我是汤师爷~ 什么是订单履约系统? 订单履约是从消费者下单支付到收到商品的全流程管理过程,包括订单接收、订单派单、库存分配、仓储管理和物流配送等环节,核心目标是确保商品准时、准确地送达消费
大家好,我是汤师爷~ 今天聊聊促销系统整体规划。 各类促销活动的系统流程,可以抽象为3大阶段: B端促销活动管理:商家运营人员在后台系统中配置和管理促销活动,包括设定活动基本信息、使用规则
全称“Java Virtual Machine statistics monitoring tool”(statistics 统计;monitoring 监控;tool 工具) 用于监控虚拟机的各种运
主要是讲下Mongodb的索引的查看、创建、删除、类型说明,还有就是Explain执行计划的解释说明。 可以转载,但请注明出处。  
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发。 2>循环服务器和并发服务器
详解 linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: ?
首先,将json串转为一个JObject对象: ? 1
matplotlib官网 matplotlib库默认英文字体 添加黑体(‘SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'
在并发编程中,synchronized关键字是常出现的角色。之前我们都称呼synchronized关键字为重量锁,但是在jdk1.6中对synchronized进行了优化,引入了偏向锁、轻量锁。本篇
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象。  
实例如下: ? 1
1. MemoryCahe NetCore中的缓存和System.Runtime.Caching很相似,但是在功能上做了增强,缓存的key支持object类型;提供了泛型支持;可以读缓存和单个缓存
argument是javascript中函数的一个特殊参数,例如下文,利用argument访问函数参数,判断函数是否执行 复制代码 代码如下: <script
一不小心装了一个Redis服务,开了一个全网的默认端口,一开始以为这台服务器没有公网ip,结果发现之后悔之莫及啊 某天发现cpu load高的出奇,发现一个minerd进程 占了大量cpu,googl
今天写这个是为了 提醒自己 编程过程 不仅要有逻辑 思想 还有要规范 代码 这样可读性 1、PHP 编程规范与编码习惯最主要的有以下几点: 1 文件说明 2 funct
摘要:虚拟机安装时一般都采用最小化安装,默认没有lspci工具。一台测试虚拟网卡性能的虚拟机,需要lspci工具来查看网卡的类型。本文描述了在一个虚拟机中安装lspci工具的具体步骤。 由于要测试
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统
目录 算术运算符 基本四则运算符 增量赋值运算符 自增/自减运算符 关系运算符 逻
如下所示: ? 1
MapperScannerConfigurer之sqlSessionFactory注入方式讲解 首先,Mybatis中的有一段配置非常方便,省去我们去写DaoImpl(Dao层实现类)的时间,这个
我是一名优秀的程序员,十分优秀!