【发布时间】:2014-09-08 00:08:57
【问题描述】:
我想检索在特定日期插入的值。这可以使用 mongodb“_id”字段吗?因为这包含嵌入的日期时间。我想在 mongodb shell 中检索值,而不是使用任何应用程序。
【问题讨论】:
-
我想显示时间戳值以及集合中的剩余字段。你能帮忙吗?我希望输出为 _id, field1, field2,
。
标签: javascript mongodb mongodb-query
我想检索在特定日期插入的值。这可以使用 mongodb“_id”字段吗?因为这包含嵌入的日期时间。我想在 mongodb shell 中检索值,而不是使用任何应用程序。
【问题讨论】:
标签: javascript mongodb mongodb-query
虽然 ObjectId 确实部分基于“时间戳”,但通常这是从 ObjectId 值中“提取”此日期的“客户端”库操作。
您可以通过 $where 的 JavaScript 评估来做到这一点,但它需要“扫描”整个集合,因此效率不高:
db.collection.find(function() {
return (
( this._id.getTimestamp().valueOf() -
this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
== new Date("2014-07-14").valueOf() );
})
这基本上会比较ObjectId 是否与提供的日期在同一天创建。其他日期数学或方法适用于其他间隔。
【讨论】: