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

Spring Boot не може да актуализира шардирана колекция на azure cosmos db(MongoDb)

Имах същия проблем, решен със следния хак:

@Configuration
public class ReactiveMongoConfig {

    @Bean
    public ReactiveMongoTemplate reactiveMongoTemplate(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory,
            MongoConverter converter, MyService service) {
        return new ReactiveMongoTemplate(reactiveMongoDatabaseFactory, converter) {
            @Override
            protected Mono<UpdateResult> doUpdate(String collectionName, Query query, UpdateDefinition update,
                    Class<?> entityClass, boolean upsert, boolean multi) {
                query.addCriteria(new Criteria("shardKey").is(service.getShardKey()));
                return super.doUpdate(collectionName, query, update, entityClass, upsert, multi);
            }
        };
    }
}

Би било хубаво да имате анотация @ShardKey, за да маркирате полето на документа като сегмент и да го добавяте автоматично към заявката.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Мога ли да използвам $project, за да върна поле като документ от най-високо ниво в заявка за агрегиране на mongo?

  2. Как да направите ляво присъединяване в DB (Mongo)

  3. Mongoid намери вграден документ

  4. MongoDB заявка за документ, по-стар от 30 секунди

  5. Релси:Грешен брой аргументи (дадени 2, очакван 1) MongoID