我想检索在特定日期插入的值。这可能是使用mongodb" _id"领域?因为这包含嵌入的日期时间。我想通过使用任何应用程序来修复mongodb shell中的值。
答案 0 :(得分:2)
虽然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
是否与提供的日期同一天创建。其他日期数学或方法适用于其他区间。