From Java driver, I want to save a document that looks like below json in MongoDb
{ "ts" : Timestamp(1421006159, 4)}
Options I tried.
Option 1: Map doc= new HashMap(1);
doc.put("ts", new BSONTimeStamp());
It results in the below not required format
{"ts" : {
"_inc" : 0,
"_class" : "org.bson.types.BSONTimestamp"
}}
Option 2:
doc.put("ts",new Timestamp(new Date().getTime()));
it results in :
{"ts" : ISODate("2015-01-12T05:36:43.343Z")}
I used the following with the default mongodb-java-driver (no spring data).
DBObject doc= new BasicDBObject();
doc.put("ts", new BSONTimeStamp(1421006159, 4));
And the MongoDB result for a find is:
{ "_id" : ObjectId("54b396da7fe45ee2d6c5e03a"), "ts" : Timestamp(1421006159, 4) }
So the Serialisation of BSONTimeStamp
to the classname and the Class attributes an their values depends on the spring-data-mongodb serializer. You should use the default java-mongodb-driver or use Java Date
and the ISODate
Format in MongoDB.
Or Maybe you could extend the spring-data-mongodb serializer and Write your own serializer and deserializer for the Class BSONTimeStamp
to use the MongoDB Timestamp type.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With