sql >> データベース >  >> NoSQL >> MongoDB

MongoDbでjacksonを使用して日付フィールドをISODate()として保存する方法

    必要なのはJacksonJodaモジュールです。これをクラスパスにインポートする場合は、マッパーで次の手順を実行して、目的のタイムスタンプとして書き込むことができます。

    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. MongoDB BulkWrite()

    2. Google Cloud Mongo DB:外部IPが接続されていません

    3. TransactionRequiredException更新/削除クエリの実行

    4. Redisリストまたはsetpopメソッドスレッドは安全ですか?