【问题标题】:I want to retrieve values inserted on particular date using _id of mongodb我想使用 _id 的 mongodb 检索在特定日期插入的值
【发布时间】:2014-09-08 00:08:57
【问题描述】:

我想检索在特定日期插入的值。这可以使用 mongodb“_id”字段吗?因为这包含嵌入的日期时间。我想在 mongodb shell 中检索值,而不是使用任何应用程序。

【问题讨论】:

  • 我想显示时间戳值以及集合中的剩余字段。你能帮忙吗?我希望输出为 _id, field1, field2,

标签: javascript mongodb mongodb-query


【解决方案1】:

虽然 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 是否与提供的日期在同一天创建。其他日期数学或方法适用于其他间隔。

【讨论】:

  • 非常感谢 Neil,我还想显示时间戳值以及集合中的剩余字段。你能帮忙吗?我希望输出为 _id、field1、field2、从 _id 字段计算的时间戳。
  • @user3848162 如果您还有其他问题,请随时发布其他问题。也不要忘记accept answers to your questions,因为这至少会给人们一些鼓励来帮助你。
猜你喜欢
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 2020-06-25
  • 2014-09-05
相关资源
最近更新 更多