sql >> データベース >  >> NoSQL >> MongoDB

SpringBootがazurecosmosdb(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. JavaScriptでループが終了した後にステートメントを実行するにはどうすればよいですか?

    2. 接続された後、mongobeeによるAtlasクラスターでのDBname.system.indexesの読み取りに失敗しました

    3. phpでmongodbmap/reduceを使用する

    4. Windows Server 2008に64ビットのmongodbをインストールしようとすると、アクセスが拒否されます