在进行接口自动化测试过程中,一种断言的思路就是查询数据库的值与接口的返回值进行比对;由于自己基本知识不扎实,在对mongdb进行find查询时,还是折腾了两三天时间,问题解决之后,在此做一个总结。
开发环境:
- MongDB version: 3.2.6
- PyMong version: 3.4.0
- Python version: 3.4
PyMong包是一个推荐使用的,操作MongDB的python工具包。它提供了2个函数查询数据库:find和find_one.
1.
find(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False, cursor_type=CursorType.NON_TAILABLE, sort=None, allow_partial_results=False, oplog_replay=False, modifiers=None, manipulate=True)
- 参数filter,是一个SON对象,指定返回的结果必须满足的条件,类似mysql的select,例如:
filter = {"loanStatus": {'$in': [0, 1, 3, 4, 5]}, "payInfo.type": 2, "items.0.type": {"$in": [1, 4]}, "confirmTime": {"$gte": -28800000}}
- 参数projection,指定返回的结果集中字段名,例如:
projection = {'_id': True, 'subject': True, 'confirmTime': True}
其他参数的使用,可参考PyMong官方文档说明和MongDB官方文档说明
- 返回值:一个游标(Cursor),指向返回的结果(documents);可使用cursor的next(),或forEach(function)获取结果,或者python的for遍历结果
2. find_one(filter=None, *args, **kwargs)¶
- 参数的含义,同find函数
- 返回值:符合条件的一个结果记录(document);或者是None