python pymongo使用dict字典保存查询字段内容遇到时间格式new date 处理方法

新手小白,最近在使用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)

备忘记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值