Не съм сигурен, но всичко подсказва, че е невъзможно да се изгради валидна заявка, използвайки строг 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 режим?.