sql >> Database >  >> NoSQL >> MongoDB

Spring Boot kan de sharded-verzameling op azure cosmos db (MongoDb) niet bijwerken

Ik had hetzelfde probleem, opgelost met de volgende hack:

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

Het zou leuk zijn om een ​​annotatie @ShardKey te hebben om het documentveld als shard te markeren en deze automatisch aan de query te laten toevoegen.



  1. Boot2Docker (op Windows) met Mongo met gedeelde map (dit bestandssysteem wordt niet ondersteund)

  2. Auditlogboekregistratie voor MongoDB

  3. Binning en tabulate (uniek/count) in Mongo

  4. Hoe een reeks documenten in MongoDB-query te filteren en toe te wijzen?