我们正在尝试插入带有当前日期作为字段的文档。我们使用mongodb的eclipse插件编写Java。我们要执行mongo的Date()
命令从mongo而不是从java获取日期。
如何执行此mongo查询?
db.example.insert({"date":new Date()})
我在预览问题中找到了这个问题,但是答案没有帮助
Link
最佳答案
标准驱动程序采用java.util.date类型并将其序列化为BSON日期。所以用一个集合对象为“ example”
Date now = new Date();
BasicDBObject timeNow = new BasicDBObject("date", now);
example.insert(timeNow);
如果您正在寻找一种在操作中使用“服务器”时间的方法,则可以使用
$currentDate
运算符,但是它可以与“更新”一起使用,因此您需要“ upsert”操作: BasicDBObject query = new BasicDBObect();
BasicDBObject update = new BasicDBObject("$currentDate",
new BasicDBObject("date", true)
);
example.update(query,update,true,false);
由于这实际上是一条更新语句,因此,如果您打算将其仅作为插入内容,则需要注意不要与任何文档实际匹配。因此,最好确保您的“查询”包含唯一信息,例如新生成的
_id
或同样唯一的信息。