【问题标题】:Mongoid to date in aggregation framework迄今为止在聚合框架中的 Mongoid
【发布时间】:2015-06-02 21:56:45
【问题描述】:

我正在创建一个投影,并试图弄清楚如何将 mongoid 转换为投影中的时间戳。很明显,我们可以使用 .getTimestamp() 来获取 mongoid 的时间戳,但我不知道如何在投影中创建新字段。我试过这个,但失败了。

db.collection.aggregate( 
[
        {$unwind: 
            "$arrayToUnwind"
        },
        {$project: 
            {
                timeOfId: "$_id".getTimeStamp()
            }
        },
]

)

请帮忙?!我想用这个投影制作一个 ISO 时间戳。

谢谢!

【问题讨论】:

  • 这不是一个重复的问题。我的是关于聚合框架的,@chridam 发布的是关于 mongo 中的 map reduce
  • 这是一个重复的问题,如果您阅读 OP 询问的上下文 我想看看如何使用 MongoDB 的聚合框架(甚至 MapReduce) 和该问题中提供的答案也适用于这个问题: 没有办法用 mongodb 的聚合框架来完成你所要求的,因为没有聚合运算符可以将 ObjectId 变成类似日期的东西(有不过是JIRA ticket)。但是,您应该能够使用 map-reduce 完成您想要的操作

标签: mongodb time collections aggregation-framework database


【解决方案1】:

https://docs.mongodb.com/manual/reference/operator/aggregation/toDate/

db.movies.aggregate([
    {
        "$project":
        {
            "date": { $toDate: "$_id" }
        }
    }
])

【讨论】:

  • 仅供参考,这仅适用于 Mongo 4+。
猜你喜欢
  • 2017-08-14
  • 1970-01-01
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-25
  • 2014-06-07
  • 1970-01-01
相关资源
最近更新 更多