MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Spring Boot không thể cập nhật bộ sưu tập đã phân đoạn trên azure cosmos db (MongoDb)

Tôi đã gặp vấn đề tương tự, được giải quyết bằng cách hack sau:

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

Rất vui nếu có chú thích @ShardKey để đánh dấu trường tài liệu là phân đoạn và thêm nó vào truy vấn tự động.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn một mảng mảng trong MongoDB

  2. Cách hoạt động của tham số arrayFilters trong MongoDB

  3. Mongodb tạo cơ sở dữ liệu / bộ sưu tập một cách nhanh chóng như thế nào

  4. Tổng hợp với cập nhật trong mongoDB

  5. Thiết kế lược đồ MongoDB - Bộ sưu tập hay tài liệu tham khảo mới?