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

新手上路,请多包涵

我们正在尝试插入一个以当前日期为字段的文档。我们正在使用 mongodb 的 eclipse 插件用 java 编写。我们要执行 mongo 的 Date() 命令以从 mongo 而不是从 java 获取日期。

我怎样才能执行这个mongo查询?

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

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

关联

原文由 itaied 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

标准驱动程序采用 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 或其他同样独特的信息。

原文由 Neil Lunn 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以尝试这样做:

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

原文由 maikelsperandio 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题