我想用当前的数据库时间(而不是JVM的时间)从Java应用程序更新mongo数据库。
如果我有一个外壳,我将执行以下命令:
db.colletion.update({_id : 'doc'}, {$set : { last_update : ISODate()}}, true, false);
我不确定如何将其转换为java:
Object lastUpdate = ???;
DBObject q = new BasicDBObject("_id", "doc");
DBObject o = new BasicDBObject("$set", new BasicDBObject("last_update", lastUpdate));
collection.update(q, o, true, false);
我试图弄清楚应该是什么lastUpdate
对象。
Date
不能选择新实例,因为它将代表JVM的时间而不是DB的时间。
我曾考虑过使用eval
来获取来自的时间DB
,但是每次更新都会花费额外的查询时间。
还有其他想法吗?
唯一的方法是使用eval
。从eval
文档中:
如果要使用服务器的解释器,则必须运行
eval
。否则,mongo shell的JavaScript解释器将评估直接输入到shell中的函数。
即使您发布的命令也将使用客户端的时间,而不是服务器的时间,因为ISODate
构造函数将在客户端/ shell上进行求值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句