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

Как да добавите крайно поле към съществуваща колекция от документи spring-data-mongodb?

Открих, че не е възможно да добавя нов private final поле към съществуваща колекция, използвайки само @PersistenceContstructor анотация. Вместо това трябваше да добавя org.springframework.core.convert.converter.Converter внедряване, за да се справя с логиката вместо мен.

Ето как в крайна сметка изглежда моят конвертор:

@ReadingConverter
public class SnapshotReadingConverter implements Converter<DBObject, Snapshot> {

    @Override
    public Snapshot convert(DBObject source) {
        long id = (Long) source.get("_id");
        String description = (String) source.get("description");
        boolean active = (Boolean) source.get("active");
        boolean billable = false;
        if (source.get("billable") != null) {
            billable = (Boolean) source.get("billable");
        }
        return new Snapshot(id, description, active, billable);
    }
}

Надявам се това да помогне на някой друг в бъдеще.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Пресичане на индекса на MongoDB

  2. Как да намеря колекция от кодове с регулярен израз и сложни критерии с помощта на Java MongoDB драйвер?

  3. Не може да се стартира MongoDB. ГРЕШКА:адресът вече се използва

  4. Как да запазите правилно датата?

  5. Като търсене в MongoDB с библиотека Monk