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)

备忘记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,没有名为`new Date()`的函数。这是因为`new Date()`是MongoDB中的函数,用于创建日期对象。在Python中,可以使用`datetime`模块来创建和处理日期对象。例如,要创建一个特定日期和时间的对象,可以使用以下代码: ``` from datetime import datetime date_obj = datetime(yyyy, mm, dd, hh, mm, ss) ``` 其中,`yyyy`表示年份,`mm`表示月份,`dd`表示日期,`hh`表示小时,`mm`表示分钟,`ss`表示秒钟。 如果只想创建一个日期对象,可以使用以下代码: ``` date_obj = datetime(yyyy, mm, dd) ``` 其中,`yyyy`表示年份,`mm`表示月份,`dd`表示日期。 请注意,根据你的具体需求,可能需要调整日期和时间的格式,以便与MongoDB查询相匹配。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [js Date对象](https://blog.csdn.net/leo626/article/details/83638330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python pymongo使用dict字典保存查询字段内容遇到时间格式new date 处理方法](https://blog.csdn.net/d294083434/article/details/120841541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值