MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara menyimpan bidang Tanggal sebagai ISODate() menggunakan jackson di MongoDb

Yang Anda butuhkan adalah Modul Jackson Joda. Jika Anda mengimpornya ke classpath Anda, Anda dapat melakukan hal berikut di mapper Anda untuk menulisnya sebagai Stempel Waktu yang Anda inginkan:

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true);
mapper.writeValueAsString(date);

Anda dapat mengganti date dalam contoh kode di atas dengan POJO Anda seperlunya.

Sunting:Sepertinya yang Anda inginkan adalah serializer khusus. Itu akan terlihat seperti ini:

public class IsoDateSerializer extends JsonSerializer<DateTime> {
    @Override
    public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) {
        String isoDate = ISODateTimeFormat.dateTime().print(value);
        jgen.writeRaw("ISODATE(\"" + isoDate + "\")");
    }

Kemudian Anda akan mendaftarkannya di mapper untuk semua jenis DateTime

mapper.addSerializer(DateTime.class, new IsoDateSerializer());

atau tentukan pada fungsi menggunakan anotasi

@JsonSerializer(using = IsoDateSerializer.class)
public DateTime createdTime;


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 5 Cara Memilih Baris dengan Nilai Maksimum untuk Grupnya di SQL

  2. Bagaimana Menguji Peningkatan Aplikasi MongoDB Anda?

  3. Impor File CSV ke MongoDB dengan mongoimport

  4. Bagaimana saya bisa menggunakan tweet dari api streaming Twitter dan menyimpannya di mongodb

  5. Bagaimana cara memperbarui sebagian objek di MongoDB sehingga objek baru akan overlay/bergabung dengan yang sudah ada