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

Đa thai dựa trên bộ sưu tập với Spring Data MongoDB

Đã tìm thấy một cách để tạo lại các chỉ mục cho một đối tượng thuê nhất định:

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

Đã cho tôi một thời gian để tìm ra điều này. Hy vọng điều này sẽ giúp ích. Những cải tiến được hoan nghênh.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. đối tượng dự án tổng hợp mongodb với concat

  2. Sử dụng tổng hợp trong mongodb để thực hiện cập nhật sau khi kết hợp truy vấn

  3. Truy vấn Mongodb find ():chỉ trả về các giá trị duy nhất (không trùng lặp)

  4. Nối các giá trị chuỗi trong mảng trong một trường duy nhất trong MongoDB

  5. Khung tổng hợp MongoDB - Đổi tên trường động