我们正在尝试插入包含当前日期的文档作为其字段。我们使用eclipse插件为mongodb编写java。我们想要执行mongo的Date()
命令来从mongo而不是从java获取日期。
如何执行此mongo查询?
db.example.insert({"date":new Date()})
我在预览问题中发现了这个问题,但答案没有帮助
答案 0 :(得分:20)
标准驱动程序采用java.util.date类型并序列化为BSON日期。所以用一个集合对象来“示例”
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
或同样独特的内容。
答案 1 :(得分:4)
使用此:
db.example.insert({"date":new Date(Date.now())});
答案 2 :(得分:4)
你可以尝试这样的事情:
db.example.insert({"date":ISODate("2016-03-03T08:00:00.000")});