如何存储时间戳?创建和更新的字段是否自动可用?

时间:2010-09-16 13:46:33

标签: mongodb

在MongoDB中存储时间戳的最佳方法是什么?

  1. 哪种格式最好:

    # "created": { "d" : "2010-03-29", "t" : "20:15:34" }
    # "created": "12343545234" # seconds since epoc
    # "created": "2010-03-14T21:20:14+0000"
    
  2. 有没有办法让MongoDB自动设置createdupdated字段?

5 个答案:

答案 0 :(得分:22)

  

哪种格式最好

最适合什么?

  

有没有办法让MongoDB自动设置创建和更新的字段?

创建时间在ObjectId,但据我所知,您必须手动更新updated字段。

示例:

ObjectId("538141a9615760fd04ffef5f").getTimestamp()

答案 1 :(得分:6)

  1. 应首选在应用程序中以最佳性能处理它所需的格式。请注意,默认情况下,MongoDB中的每个文档都会获得一个创建的时间戳(http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-DocumentTimestamps

  2. 参见1)+我认为您需要手动设置“更新”字段。

答案 2 :(得分:5)

如果您在mongo shell上执行以下操作,则会显示时间戳,表示使用mongoId插入文档的时间。对于前者ObjectId("51f3dee5ee49f9b91e0db133").getTimestamp(),然后返回ISODate

答案 3 :(得分:2)

在1.8及以上版本中,Mongo可以创建64位时间戳值,这些值在单个服务器上保证唯一。但他们没有自动更新。 http://www.mongodb.org/display/DOCS/Timestamp+data+type

答案 4 :(得分:1)

您需要将一个对象作为第二个参数传递给您的 Schema,并像这样将时间戳设置为 true

~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager --licenses

mongodb 为你提供了 createdAt 和 UpdatedAt 字段