MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Multitenancy berbasis koleksi dengan Spring Data MongoDB

Menemukan cara untuk membuat ulang indeks untuk penyewa tertentu:

String tenantName = ...;

MongoMappingContext mappingContext = (MongoMappingContext) mongoTemplate.getConverter().getMappingContext();
MongoPersistentEntityIndexResolver resolver = new MongoPersistentEntityIndexResolver(mappingContext);

for (BasicMongoPersistentEntity entity : mappingContext.getPersistentEntities()) {
    if (entity.findAnnotation(Document.class) == null) {
        // Keep only collection roots
        continue;
    }

    String collectionName = entity.getCollection();
    if (!collectionName.startsWith(tenantName)) {
        // Keep only dynamic entities
        continue;
    }

    IndexOperations indexOperations = mongoTemplate.indexOps(collectionName);
    for (MongoPersistentEntityIndexResolver.IndexDefinitionHolder holder : resolver.resolveIndexForEntity(entity)) {
        indexOperations.ensureIndex(holder.getIndexDefinition());
    }
}

Butuh beberapa waktu untuk mencari tahu ini. Semoga ini bisa membantu. Peningkatan diterima.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengonfigurasi oauth2-server-laravel dengan laravel-mongodb

  2. Mengapa saya tidak bisa men-debug kode dalam metode async?

  3. Memulai server mongodb menggunakan skrip npm

  4. Menyimpan array (dari 'tag') ke MongoDB menggunakan Mongoose

  5. Bagaimana cara mendapatkan panjang kursor dari mongodb menggunakan python?