sql >> Databáze >  >> NoSQL >> MongoDB

Filtrování RokMěsíc z dokumentu Mongo

Budete muset vytvořit vlastní kodek pro rok Měsíc, protože to není standardní typ Bson. To zahrnuje dva kroky. Upravte podle svých potřeb.

Vytvořte 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);

    }

}   

Zaregistrujte kodek pomocí klienta 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. mongodb vytvoří 80+ souborů o velikosti 2 GB, zatímco databáze je prázdná

  2. Jak škálovat SignalR pomocí Azure Worker Role a OWIN

  3. Počítejte výskyty ve vnořených dokumentech mongodb a udržovací skupině

  4. Redis přístup z MS Excel?