Wie Sie sparen Typ Timestamp Wert in MongoDb | Java
Vom Java-Treiber, ich möchte ein Dokument speichern, das sieht wie folgt aus json in MongoDb
{ "ts" : Timestamp(1421006159, 4)}
Optionen, die ich ausprobiert habe.
Option 1:
Anzeigen doc= new HashMap(1);
doc.put("ts", new BSONTimeStamp());
Es Ergebnisse in die unten nicht benötigt-format
{"ts" : {
"_inc" : 0,
"_class" : "org.bson.types.BSONTimestamp"
}}
Option 2:
doc.put("ts",new Timestamp(new Date().getTime()));
das Ergebnis :
{"ts" : ISODate("2015-01-12T05:36:43.343Z")}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich Folgendes mit dem Standard-mongodb-java-Treiber (keine Feder-Daten).
Und die MongoDB Ergebnis für ein finden ist:
Also das Serialisieren von
BSONTimeStamp
zu den Klassennamen und die Attribute der Klasse ein, Ihre Werte sind abhängig von der spring-data-mongodb serializer. Sie sollten die Standard-java-mongodb-Treiber oder verwenden Sie JavaDate
und dieISODate
Format in MongoDB.Oder Vielleicht könnten Sie verlängern die spring-data-mongodb serializer und Schreiben Sie Ihre eigene serializer und deserializer für die Klasse
BSONTimeStamp
die Verwendung der MongoDB-Typ Timestamp.Von MongoDB Sie empfehlen die Aufbewahrung ein Tag, da BSON-Timestamp für die interne Verwendung:
http://docs.mongodb.org/manual/reference/bson-types/#timestamps
Der Unterschied ist, dass bisher weitere Vertretung der Reihe, da ist ein 64-bit-Ganzzahl, stellt die Anzahl der Millisekunden seit der Unix-Epoche.
Im BSON-Timestamp nur 32 bits hat diesen Zweck; die anderen 32 bits sind eine inkrementelle ordinal integer, innerhalb von einer Sekunde zu gewährleisten Einzigartigkeit der Wert. Ich vermute, das ist der Grund, warum verwenden Sie Timestamp im oplog.
Wenn Euch das nichts ausmacht Einzigartigkeit empfehle ich die Nutzung eines Datums (aka isodate) zurückgegeben wird, also die option 2 oder option 3: