我在使用以下查询时遇到了一些问题:
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")}}})