Не съм сигурен, но всичко подсказва, че е невъзможно да се изгради валидна заявка, използвайки строг JSON. Въпреки че можете да изпълните заявка, комбинираща $date с $gt , $gte , $lt , $lte изглежда, както във вашия случай, винаги се оценява като false .
Когато комбинирате $date с $ne или $nin ще съответства на всеки документ в колекцията, така че мисля, че потвърждава предишното наблюдение.
Какво е по-важно, когато се опитвате да получите точно съвпадение като това db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}}) ще получите невалидна грешка на оператора (10068).
Предполагам, че когато се опитате да създадете документ в Mongo shell, използвайки $date
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
не се оценява като дата и няма начин да се вмъкне документ като този в колекцията. Както виждате, изглежда, че строг JSON се анализира правилно само от инструменти като mongoimport .Тук има подобен въпрос:Има ли начин да стартирате обвивката на MongoDB (или метода tojson) в строг JSON режим?.