MongoDB的(V2.4.0)$的比赛总不注日期的工作范围(Mongodb (v2.4.0) $m

2019-08-22 16:49发布

我使用直通Maven仓库MongoDB的Java驱动程序(如下面的pom.xml)查询日期范围之间的交易与骨料framwork。 在Java驱动程序产生,我试图验证蒙戈控制台上,发现它不工作,以下$比赛:

db.transactions.aggregate(
{ "$match" : 
    { 
        "created_at" : { "$gt" : { "$date" : "2001-04-12T12:00:00.000Z"} , "$lte" : { "$date" : "2020-04-13T12:00:00.000Z"}}
    }
}
)

如果我删除$日期排和ISOdate功能和日期字符串替换它,然后它似乎工作。 我不明白为什么它不能在Java中工作($比赛JSON - 我从月食获取在蒙戈控制台尝试和不正常工作。)

pom.xml
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>2.11.0</version>
</dependency>

没有任何一个知道为什么$日期不与骨料使用MongoDB的V2.4.0工作?

Answer 1:

我把它通过删除解决""$的前缀$date中的字段$match 。 对于删除同样为$date$gt$lte

因此,它应该像

db.transactions.aggregate(
{ "$match" : 
         { 
          'created_at': { 
                         $gt: "2001-04-12T12:00:00.000Z", 
                         $lt: "2020-04-13T12:00:00.000Z"
                        }
         }
});


文章来源: Mongodb (v2.4.0) $match aggregate not working with date range