MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách lưu trữ trường Ngày dưới dạng ISODate () bằng jackson trong MongoDb

Những gì bạn cần là Mô-đun Jackson Joda. Nếu bạn nhập nó vào classpath của mình, bạn có thể thực hiện như sau trên trình liên kết của mình để viết nó làm Dấu thời gian mong muốn của bạn:

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

Bạn có thể thay thế date trong mẫu mã ở trên với POJO của bạn nếu cần.

Chỉnh sửa:Có vẻ như những gì bạn thực sự muốn là một bộ nối tiếp tùy chỉnh. Nó trông giống như thế này:

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

Sau đó, bạn sẽ đăng ký nó trên trình ánh xạ cho tất cả các loại DateTime

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

hoặc chỉ định nó trên hàm bằng cách sử dụng chú thích

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Các trường kết quả Mongoose / MongoDB xuất hiện không xác định trong Javascript

  2. Làm thế nào để truy vấn các đối tượng lồng nhau?

  3. Regex cho MongoDB ObjectID

  4. Đổi tên một trường trong kết quả truy vấn trong MongoDB

  5. Hiểu về Meteor Xuất bản / Đăng ký