在MongoDB中存储时间戳的最佳方法是什么?
哪种格式最好:
# "created": { "d" : "2010-03-29", "t" : "20:15:34" }
# "created": "12343545234" # seconds since epoc
# "created": "2010-03-14T21:20:14+0000"
有没有办法让MongoDB自动设置created
和updated
字段?
答案 0 :(得分:22)
哪种格式最好
最适合什么?
有没有办法让MongoDB自动设置创建和更新的字段?
创建时间在ObjectId,但据我所知,您必须手动更新updated
字段。
示例:
ObjectId("538141a9615760fd04ffef5f").getTimestamp()
答案 1 :(得分:6)
应首选在应用程序中以最佳性能处理它所需的格式。请注意,默认情况下,MongoDB中的每个文档都会获得一个创建的时间戳(http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-DocumentTimestamps)
参见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 字段