次のクエリに問題があります。
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")}}})