Mặc dù đúng là ObjectId một phần dựa trên "dấu thời gian", nhưng nói chung đây là hoạt động của thư viện "máy khách" để "trích xuất" ngày này từ giá trị ObjectId.
Bạn có thể thực hiện việc này với đánh giá JavaScript của $where
, nhưng nó sẽ cần "quét" toàn bộ bộ sưu tập, do đó không hiệu quả lắm:
db.collection.find(function() {
return (
( this._id.getTimestamp().valueOf() -
this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
== new Date("2014-07-14").valueOf() );
})
Điều đó về cơ bản sẽ so sánh xem liệu ObjectId
được tạo vào cùng ngày với ngày được cung cấp. Các phương pháp hoặc phép toán ngày tháng khác áp dụng cho các khoảng thời gian khác.