如何在mongo中插入带有日期的文档?

2022-09-02 20:15:11

我们正在尝试插入具有当前日期的文档,因为它是字段。我们正在使用mongodb的eclipse插件用java编写。我们希望执行 mongo 的命令,从 mongo 而不是 java 获取日期。Date()

如何执行此 mongo 查询?

db.example.insert({"date":new Date()})

我在预览问题中发现了这个问题,但答案没有帮助

链接


答案 1

标准驱动程序采用 java.util.date 类型,并序列化为 BSON 日期。所以用一个集合对象来“例子”

Date now = new Date();

BasicDBObject timeNow = new BasicDBObject("date", now);
example.insert(timeNow);

如果您正在寻找一种在操作中使用“服务器”时间的方法,则有$currentDate运算符,但这适用于“updates”,因此您需要“upsert”操作:

 BasicDBObject query = new BasicDBObect();
 BasicDBObject update = new BasicDBObject("$currentDate",
     new BasicDBObject("date", true)
 );

 example.update(query,update,true,false);

由于这实际上是一个更新语句,因此如果您打算仅将其作为插入,则需要小心,实际上并未匹配任何文档。因此,最好确保您的“查询”包含唯一信息,例如新生成的信息或同样独特的信息。_id


答案 2

你可以尝试这样的事情:

db.example.insert({"date":ISODate("2016-03-03T08:00:00.000")});