Tôi không chắc chắn nhưng mọi thứ đều gợi ý rằng không thể tạo truy vấn hợp lệ bằng cách sử dụng JSON nghiêm ngặt. Mặc dù bạn có thể chạy truy vấn kết hợp $date
với $gt
, $gte
, $lt
, $lte
có vẻ như trong trường hợp của bạn luôn được đánh giá là false
.
Khi bạn kết hợp $date
với $ne
hoặc $nin
nó sẽ khớp với mọi tài liệu trong bộ sưu tập nên tôi nghĩ nó xác nhận quan sát trước đó.
Điều quan trọng hơn khi bạn cố gắng lấy kết hợp chính xác như thế này db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}})
bạn sẽ gặp lỗi toán tử không hợp lệ (10068).
Dự đoán của tôi là Khi cố gắng tạo tài liệu trong Mongo shell bằng $date
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
nó không được đánh giá là ngày tháng và không có cách nào để chèn tài liệu như thế này vào bộ sưu tập. Như bạn thấy, có vẻ như JSON nghiêm ngặt chỉ được phân tích cú pháp chính xác bởi các công cụ như mongoimport
Có một câu hỏi tương tự ở đây:Có cách nào để chạy MongoDB shell (hoặc phương thức tojson) ở chế độ JSON nghiêm ngặt không?