$elemMatch Jongo 查询中不起作用



我在以下查询中遇到了一些问题:

documents()
.find("{values: {$elemMatch: {name: #, value: #}}}", "Date", new DateTime()
.withDate(2027, 6, 2)
.withHourOfDay(18)
.withMinuteOfHour(06)
.withSecondOfMinute(40)
.toDate()).as(Document.class);

它不会引发错误,但返回一个空列表。

但是,在控制台上,它成功运行并向我显示结果。

正在挖掘源代码,我发现实际上Date并没有被解析为ISODate("yyyy-MM-ddTxxxxx"),而是被解析为{$date: "yyyy-MM-ddTxxxxx"}

我不知道这是一个问题,还是我显然错过了一些东西。如果有人能指出我正确的方向,请这样做。

PS:作为参考,这里是控制台查询:

db.documents.find({values: {$elemMatch: {"name": "Date", "value" : ISODate("2027-06-02T18:06:40Z")}}})
使用

JodaTime 创建的日期不等于使用 ISODate 创建的日期:ISODate("2027-06-02T18:06:40Z")

尝试创建 iso 日期时间,如下所示:

new DateTime("2013-01-19T15:28:58.851Z");

有关更多信息,请参阅 github 问题 : https://github.com/bguerout/jongo/issues/187

最新更新