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

Филтриране на YearMonth от Mongo документ

Ще трябва да създадете персонализиран кодек за Година Месец, тъй като това не е стандартен тип Bson. Това включва две стъпки. Настройте според нуждите си.

Създайте кодека

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
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb:вземете само листа от дърво

  2. Заявка за вложен масив в MongoDB

  3. Сортиране по уместност с MongoDB

  4. MongoDB db.collection.count()

  5. MongoDB $lte оператор на конвейера за агрегация