MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Filtrowanie YearMonth z dokumentu Mongo

Będziesz musiał utworzyć niestandardowy kodek dla miesiąca roku, ponieważ nie jest to standardowy typ Bson. Obejmuje to dwa kroki. Dostosuj do swoich potrzeb.

Utwórz kodek

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);

    }

}   

Zarejestruj kodek w kliencie 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. Wstawiaj wartości do tablicy bazy danych mongodb przez linię wodną (sails js)

  2. jak połączyć mongo z elasticsearch za pomocą logstash?

  3. Agregacja z wieloma kryteriami i dopasowaniem sum na podstawie klucza liczby

  4. Wyodrębniona agregacja MongoDB

  5. Schemat godzin otwarcia MongoDB