sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur använder man flera mongodb-databaser i vårstartapplikationen?

Följ stegen nedan för att ställa in flera mongodb-datakällor.

  1. Definiera dina primära och sekundära mongodb-egenskaper som nedan i application.properties, ersätt dina db-uppgifter med dem:

    ######Primary Mongo DB########################
    spring.data.mongodb.host=localhost
    spring.data.mongodb.database=primary
    spring.data.mongodb.port=27017
    spring.data.mongodb.password=*******
    spring.data.mongodb.username=*******
    
    ###########Secondary MongoDB#####################
    mongodb.host=localhost
    mongodb.port=27017
    mongodb.database=secondary
    mongodb.username=******
    mongodb.password=******
    
  2. Lägg nu till Multiple Mongo Db Configuration...

    @Configuration
    public class MultipleMongoConfig {
    
    @Primary
    @Bean(name = "primary")
    @ConfigurationProperties(prefix = "spring.data.mongodb")
    public MongoProperties getPrimary() {
        return new MongoProperties();
    }
    
    @Bean(name = "secondary")
    @ConfigurationProperties(prefix = "mongodb")
    public MongoProperties getSecondary() {
        return new MongoProperties();
    }
    
    @Primary
    @Bean(name = "primaryMongoTemplate")
    public MongoTemplate primaryMongoTemplate() throws Exception {
        return new MongoTemplate(primaryFactory(getPrimary()));
    }
    
    @Bean(name = "secondaryMongoTemplate")
    public MongoTemplate secondaryMongoTemplate() throws Exception {
        return new MongoTemplate(secondaryFactory(getSecondary()));
    }
    
    @Bean
    @Primary
    public MongoDbFactory primaryFactory(final MongoProperties mongo) throws Exception {
        return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()),
                mongo.getDatabase());
    }
    
    @Bean
    public MongoDbFactory secondaryFactory(final MongoProperties mongo) throws Exception {
        return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()),
                mongo.getDatabase());
    }
    

    }

  3. Aktivera nu EnableMongoRepositories för din primära och sekundära. se till att du ändrar basePackages = "com.example.springbootmultipledatasource.primary.repository" ditt förvarspaket här

    @Configuration
    @EnableMongoRepositories(basePackages = 
    "com.example.springbootmultipledatasource.primary.repository",
        mongoTemplateRef = "primaryMongoTemplate")
     public class PrimaryMongoConfig {
    
     }
    

Sekundär Mongo-mall:Se till att du ändrar ditt sekundära repository-paket här basePackages = "com.example.springbootmultipledatasource.secondary.repository

    @Configuration
    @EnableMongoRepositories(basePackages = "com.example.springbootmultipledatasource.secondary.repository",
        mongoTemplateRef = "secondaryMongoTemplate")
   public class SecondaryMongoConfig {
   }

Nu kan du skapa ditt dokument, arkiv, tjänst, kontrollenhet och du är bra att gå. nedan är min projektstruktur som du kan skapa eller ha annorlunda.




  1. Hur kan jag skapa ett ObjectId med mongoose?

  2. Hur man använder variabler med MongoDB $lookup

  3. Under MongoDB java-drivrutin Mapreduce kommandoomfång; lägga till funktioner i Scope

  4. Ska jag lagra JWT-tokens i redis?