MongoDB のBSON の厳密な JSON 表現を使用して、日付比較クエリを作成しようとしています。
MongoDB シェル (v2.4.3) で動作させたい
これが私が試したことです...
at
セットアップ: 2020 年 1 月 1 日の日付で新しいドキュメントを作成します。
> db.myTimes.insert({"at": new Date("2020-01-01")})
日付 > 2010 の厳密ではないクエリを使用しても問題ありません。
> db.myTimes.find({"at": {"$gt": new Date("2010-01-01")}})
{ "_id" : ObjectId([snipped]), "at" : ISODate("2020-01-01T00:00:00Z") }
ただし、厳密な JSON クエリを使用すると... NO DICE
> db.myTimes.find({"at": {"$gt": {"$date":"2010-01-01T00:00:00Z"}}})
> db.myTimes.find({"at": {"$gt": {"$date":"2010-01-01"}}})
> db.myTimes.find({"at": {"$gt": {"$date": 1262304000000}}})
> db.myTimes.find({"at": {"$lte": {"$date": 1262304000000}}})
(ご覧のとおり、ISO8601の日付、エポックタイムを試し、これらが相互に排他的であるという理論に変更$gt
したため、そのうちの1つが何かを返すはずです:-)$lte
ご指摘ありがとうございます。
-B