Embora seja verdade que o ObjectId é baseado em um "timestamp" em parte, geralmente essa é uma operação de biblioteca "cliente" para "extrair" essa data do valor do ObjectId.
Você pode fazer isso com a avaliação JavaScript de
$where
, mas precisará "varrer" toda a coleção, portanto não é muito eficiente: db.collection.find(function() {
return (
( this._id.getTimestamp().valueOf() -
this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
== new Date("2014-07-14").valueOf() );
})
Isso irá basicamente comparar para ver se o
ObjectId
foi criado no mesmo dia que a data fornecida. Outros métodos ou matemática de datas se aplicam a outros intervalos.