如何从数据库服务器插入带有时间戳的MongoDB文档

时间:2012-05-27 03:24:28

标签: java mongodb

在Oracle中,我可以这样做:

INSERT INTO myTable VALUES ('someValue',SYSTIMESTAMP);

这会在myTable中插入两个值,其中一个是基于数据库服务器时间的时间戳。

对于MongoDB(通过Java驱动程序)我试过这个:

myDoc.put("value","someValue");
myDoc.put("timestamp", new Date());
myCollection.insert(myDoc);

但是这会根据客户端计算机的时间创建时间戳,而不是数据库服务器的时间。

有没有办法让MongoDB根据数据库服务器时间对文档应用时间戳?

3 个答案:

答案 0 :(得分:5)

游戏稍晚 - 但最近发布的mongodb有$ currentDate。

请参阅http://docs.mongodb.org/manual/reference/operator/update/currentDate/

答案 1 :(得分:0)

使用MongoDB的Morphia ORM工具

对于您的问题,希望this的生命周期方法很有帮助。

我使用 @Prepersist 方法获得结果

答案 2 :(得分:0)

看起来您可以使用 db.test.insertOne( { ts: new Timestamp() } ); 让服务器在插入时生成时间戳。 https://docs.mongodb.com/manual/reference/bson-types/#timestamps