Não tenho certeza, mas tudo sugere que é impossível criar uma consulta válida usando JSON estrito. Embora você possa executar uma consulta combinando
$date
com $gt
, $gte
, $lt
, $lte
parece, como no seu caso, ser sempre avaliado como false
. Quando você combina
$date
com $ne
ou $nin
ele corresponderá a todos os documentos da coleção, então acho que confirma a observação anterior. O que é mais importante quando você tenta obter uma correspondência exata como esta
db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}})
você receberá um erro de operador inválido (10068). Meu palpite é quando tentar criar um documento no shell do Mongo usando
$date
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
ele não é avaliado como data e não há como inserir um documento como este na coleção. Como você vê, parece que o JSON estrito é analisado corretamente apenas por ferramentas como
mongoimport
.Há uma pergunta semelhante aqui:Existe uma maneira de executar o shell MongoDB (ou método tojson) no modo JSON estrito?.