よくわかりませんが、厳密なJSONを使用して有効なクエリを作成することは不可能であることをすべてが示唆しています。 $date
を組み合わせてクエリを実行できますが $gt
を使用 、$gte
、$lt
、$lte
あなたの場合のように、常にfalse
として評価されるようです 。
$date
を組み合わせる場合 $ne
を使用 または$nin
コレクション内のすべてのドキュメントと一致するため、以前の観察結果を確認できると思います。
このdb.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}})
のように完全に一致させようとすると、さらに重要になります。 無効なオペレーターエラー(10068)が発生します。
私の推測では、$date
を使用してMongoシェルでドキュメントを作成しようとすると
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
日付として評価されず、このようなドキュメントをコレクションに挿入する方法はありません。ご覧のとおり、厳密なJSONはmongoimport
などのツールによってのみ正しく解析されるようです。 。ここにも同様の質問があります:厳密なJSONモードでMongoDBシェル(またはtojsonメソッド)を実行する方法はありますか?