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

MongoドキュメントからYearMonthをフィルタリングする

    これは標準のBsonタイプではないため、年月のカスタムコーデックを作成する必要があります。これには2つのステップが含まれます。ニーズに基づいて調整します。

    コーデックを作成する

    public class YearMonthCodec implements Codec<YearMonth> {
    
        public void encode(BsonWriter writer, YearMonth value, EncoderContext encoderContext) {
    
            writer.writeStartDocument();
    
            writer.writeName("year");
            writer.writeInt32(value.getYear());
            writer.writeName("month");
            writer.writeInt32(value.getMonth().getValue());
    
            writer.writeEndDocument();
    
        }
    
        public Class<YearMonth> getEncoderClass() {
            return YearMonth.class;
        }
    
        public YearMonth decode(BsonReader reader, DecoderContext decoderContext) {
    
            reader.readStartDocument();
    
            int year = reader.readInt32("year");
            int month = reader.readInt32("month");
    
            reader.readEndDocument();
    
            return YearMonth.of(year, month);
    
        }
    
    }   
    

    コーデックをMongoクライアントに登録します

    CodecRegistry codecRegistry = CodecRegistries.fromRegistries(CodecRegistries.fromCodecs(new YearMonthCodec()),
            MongoClient.getDefaultCodecRegistry());
    MongoClientOptions options = MongoClientOptions.builder().codecRegistry(codecRegistry).build();
    MongoClient mongoClient = new MongoClient(new ServerAddress(), options);
    



    1. いつRedisするのですか? MongoDBはいつですか?

    2. Redisクラスターでパターンに一致するキーを削除する方法

    3. pymongoで動作するallowDiskUse:Trueを取得できません

    4. MongoDB $ add