sql >> Databasteknik >  >> NoSQL >> MongoDB

Spring Boot kan inte uppdatera sharded-samlingen på azure cosmos db(MongoDb)

Jag hade samma problem, löst med följande 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);
            }
        };
    }
}

Skulle vara trevligt att ha en kommentar @ShardKey för att markera dokumentfältet som shard och få det automatiskt lagt till i frågan.



  1. Hur man får värdena från min MongoDB-fråga en const

  2. MongoDB:Hur man hittar ett dokument med ett id inuti ett kapslat dokument

  3. Fråga och summera allt med mongoose

  4. MongoDb primär replika blir sekundär om sekundär misslyckas