从 Java 驱动程序中,我想在 MongoDb 中保存一个类似于下面 json 的文档
{ "ts" : Timestamp(1421006159, 4)}
我尝试过的选项。
选项1:映射 doc= new HashMap(1);
doc.put("ts", new BSONTimeStamp());
它会产生以下非必需格式
{"ts" : {
"_inc" : 0,
"_class" : "org.bson.types.BSONTimestamp"
}}
选项2:
doc.put("ts",new Timestamp(new Date().getTime()));
结果是:
{"ts" : ISODate("2015-01-12T05:36:43.343Z")}
我将以下内容与默认的 mongodb-java-driver (无 spring 数据)一起使用。
DBObject doc= new BasicDBObject();
doc.put("ts", new BSONTimeStamp(1421006159, 4));
MongoDB 的查找结果是:
{ "_id" : ObjectId("54b396da7fe45ee2d6c5e03a"), "ts" : Timestamp(1421006159, 4) }
所以序列化BSONTimeStamp
类名和 Class 属性及其值取决于 spring-data-mongodb 序列化器。您应该使用默认的 java-mongodb-driver 或使用 JavaDate
和ISODate
MongoDB 中的格式。
或者也许您可以扩展 spring-data-mongodb 序列化器并为该类编写自己的序列化器和反序列化器BSONTimeStamp
使用 MongoDB Timestamp 类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)