Nie jestem pewien, ale wszystko wskazuje na to, że nie można zbudować poprawnego zapytania przy użyciu ścisłego JSON. Chociaż możesz uruchomić zapytanie łączące $date
z $gt
, $gte
, $lt
, $lte
wydaje się, jak w twoim przypadku, że zawsze jest oceniany jako false
.
Po połączeniu $date
z $ne
lub $nin
będzie pasował do każdego dokumentu w kolekcji, więc myślę, że potwierdza poprzednią obserwację.
Co jest ważniejsze, gdy próbujesz uzyskać dokładne dopasowanie w ten sposób db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}})
otrzymasz nieprawidłowy błąd operatora (10068).
Domyślam się, że próba utworzenia dokumentu w powłoce Mongo przy użyciu $date
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
nie jest oceniany jako data i nie ma możliwości wstawienia takiego dokumentu do kolekcji. Jak widać, wygląda na to, że ścisły JSON jest poprawnie analizowany tylko przez narzędzia takie jak mongoimport
.Tu jest podobne pytanie:czy istnieje sposób na uruchomienie powłoki MongoDB (lub metody tojson) w ścisłym trybie JSON?.