mongodb 函数 aggregate 查询条件中日期类型不起作用

第一种日期写法:
=mongo_shell(A1, “2c9a02e177e8fa9201782092a578709f.aggregate([{$match:{‘status’: true,‘data_time’: {‘$gte’: ISODate(‘2022-01-01T00:00:00.000Z’), ‘$lt’: ISODate(‘2022-06-11T23:59:59.999Z’)}}},
{$group:{‘_id’: {‘2c9a02e1783b5e370178913dab1a1105’: ‘$2c9a02e1783b5e370178913dab1a1105’, ‘2c9a02e1783b5e370178913dd50c1112’: ‘$2c9a02e1783b5e370178913dd50c1112’}, ‘2c9a02e1783b5e3701783f0882a15014’: {‘$sum’: ‘$2c9a02e1783b5e3701783f0882a15014’}}}])”)

第二种日期写法:
=mongo_shell(A1, “2c9a02e177e8fa9201782092a578709f.aggregate([{$match:{‘status’: true,‘data_time’: {‘$gte’: {‘$date’:‘2022-01-01T00:00:00.000Z’}, ‘$lt’: {‘$date’:‘2022-06-11T23:59:59.999Z’}}}},
{$group:{‘_id’: {‘2c9a02e1783b5e370178913dab1a1105’: ‘$2c9a02e1783b5e370178913dab1a1105’, ‘2c9a02e1783b5e370178913dd50c1112’: ‘$2c9a02e1783b5e370178913dd50c1112’}, ‘2c9a02e1783b5e3701783f0882a15014’: {‘$sum’: ‘$2c9a02e1783b5e3701783f0882a15014’}}}])”)
data_time 是 Timestamp 类型,如果 aggregate 增加上 data_time 过滤条件不返回任务数据。

如果去掉 data_time 条件,则可以返回数据,脚本如下。
=mongo_shell(A1, “2c9a02e177e8fa9201782092a578709f.aggregate([{$match:{‘status’: true}},
{$group:{‘_id’: {‘2c9a02e1783b5e370178913dab1a1105’: ‘$2c9a02e1783b5e370178913dab1a1105’, ‘2c9a02e1783b5e370178913dd50c1112’: ‘$2c9a02e1783b5e370178913dd50c1112’}, ‘2c9a02e1783b5e3701783f0882a15014’: {‘$sum’: ‘$2c9a02e1783b5e3701783f0882a15014’}}}])”)

如果 mongodb 查询 find 可以使用 data_time 参数过滤,可以正确返回数据,脚本如下。
=mongo_shell(A1, “2c9a02e177e8fa9201782092a578709f.find({‘status’: true,‘data_time’: {‘$gte’: {‘$date’:‘2022-01-01T00:00:00.000Z’}, ‘$lt’: {‘$date’:‘2022-06-11T23:59:59.999Z’}}})”)

aggregate 函数如果不使用集算器 spl 语法,直接使用 java 驱动调用 mongodb 数据库是可以正确返回数据的。下面是我直接调用 mongodb java 驱动语法,如图:

imagepng

java 程序用到的驱动包
imagepng

我比对了一下集算器使用的驱动包

![imagepng](https://img.raqsoft.com.cn/file/2022/
test_datedfx
06/2ea708bc9a574ba382d4caa9e960d0ba_image.png)

集算器用的是 4.3,很能猜用的是 4.1,我把集算器的驱动包换成了 4.1。再次尝试运行结果,发现一样没有数据

附件中是我测试的脚本文件
test_daterar