使用 MongoDB ObjectId 按创建日期查找文档
MongoDB ObjectId 在其 12 字节表示中保存文档创建的时间戳。为了帮助根据创建日期查询文档,可以利用此功能。
考虑以下场景:您希望查找 1980 年 5 月 25 日午夜之后创建的所有文档。要实现此目的,您可以使用以下方法:
用于生成时间嵌入的 ObjectId 的 JavaScript 代码:
<code class="javascript">/* Function creates an ObjectId embedded with a given datetime (Date object or string) */ function objectIdWithTimestamp(timestamp) { timestamp = typeof timestamp == 'string' ? new Date(timestamp) : timestamp; var hexSeconds = Math.floor(timestamp / 1000).toString(16); return ObjectId(hexSeconds + "0000000000000000"); }</code>
查询示例:
<code class="javascript">/* Find documents created after midnight on May 25th, 1980 using the generated ObjectId */ db.mycollection.find({ _id: { $gt: objectIdWithTimestamp('1980/05/25') } });</code>
此查询将返回 ObjectId 代表时间大于给定时间戳的所有文档。通过这种方式,您可以根据文档的创建日期有效地隔离文档。
以上是如何使用 MongoDB ObjectIds 根据创建日期查找文档?的详细内容。更多信息请关注PHP中文网其他相关文章!