我们正在尝试插入带有当前日期作为字段的文档。我们使用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或同样唯一的信息。

10-07 19:31
查看更多