MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да съхранявате полето за дата като ISODate() с помощта на jackson в MongoDb

Това, от което се нуждаете, е модулът Jackson Joda. Ако импортирате това във вашия път на класа, можете да направите следното на вашия картограф, за да го напишете като желаното от вас времеви печат:

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

Можете да замените date в примерния код по-горе с вашето POJO, ако е необходимо.

Редактиране:Изглежда, че това, което наистина искате, е персонализиран сериализатор. Това би изглеждало така:

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 + "\")");
    }

След това или ще го регистрирате в картографа за всички типове DateTime

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

или го посочете във функцията, като използвате пояснения

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как мога да обещая собствения Javascript драйвер на MongoDB, използвайки bluebird?

  2. Име на полето batchSize се игнорира в Field Projection

  3. Как да актуализирате поддокумент в mongodb

  4. Актуализирайте множество полета в документ на MongoDB

  5. Полета за актуализиране на MongoDB във вложен масив