新手小白,最近在使用python+mongoDB操作数据库,遇到拼接查询语句,要实现时间起止时间查询,如下:(下面是mongoDB sql)
db.po.find({'vendorId': {'$in': ['0045']},
'deliveryTime': {'$gte': new Date('2021-10-01 00:00:00'),
'$lte': new Date('2021-10-20 23:59:59')},
},{...})
现在需要使用dict字典组装查询条件:(下面是python)
vid = ['0045']
find_param = dict()
vendorIdDict = dict()
vendorIdDict['$in'] = vid
find_param['vendorId'] = vendorIdDict
在组装时间时报错:new date是mongo的函数不是python函数 所以报错。(下面是python)
#### 这个写法是错误的
deliveryAtDict = dict()
deliveryAtDict['$gte'] = new date(deliveryFrom + ' 00:00:00')
deliveryAtDict['$lte'] = new date( deliveryTo + ' 23:59:59')
find_param['deliveryTime'] = deliveryAtDict
所以使用 parser.parse,正确写法如下:(下面是python)
from dateutil import parser
deliveryAtDict = dict()
deliveryAtDict['$gte'] = parser.parse(deliveryFrom + ' 00:00:00')
deliveryAtDict['$lte'] = parser.parse(deliveryTo + ' 23:59:59')
find_param['deliveryTime'] = deliveryAtDict
然后pymongo 组装sql执行:find_param 是查询条件dict字典,field_param是返回字段的dict字典
(下面是python)
db.po.find(find_param,field_param)
备忘记录