集計フレームワークを使用して日付範囲間のトランザクションをクエリするために、maven リポジトリ (以下の pom.xml のように) を介して mongodb Java ドライバーを使用しています。Java ドライバーは、mongo コンソールで検証しようとした次の $match を生成し、機能しないことがわかりました。
db.transactions.aggregate(
{ "$match" :
{
"created_at" : { "$gt" : { "$date" : "2001-04-12T12:00:00.000Z"} , "$lte" : { "$date" : "2020-04-13T12:00:00.000Z"}}
}
}
)
$date ブロックを削除して ISOdate 関数と日付文字列に置き換えると、機能しているように見えます。Javaで機能しない理由を理解できませんでした($ match JSON - Eclipseからフェッチしてmongoコンソールで試してみましたが、それも機能しません。)
pom.xml
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.11.0</version>
</dependency>
$date が MongoDB v2.4.0 を使用して集計で機能しない理由を知っている人はいますか?