sql >> Databáze >  >> NoSQL >> MongoDB

Jak používat více databází mongodb v jarní spouštěcí aplikaci?

Chcete-li nastavit více zdrojů dat mongodb, postupujte podle níže uvedených kroků.

  1. Definujte své primární a sekundární vlastnosti mongodb jako níže v application.properties, nahraďte jimi prosím podrobnosti o své databázi:

    ######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. Nyní přidejte konfiguraci více Mongo Db..

    @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. Nyní povolte EnableMongoRepositories pro primární a sekundární. ujistěte se, že jste změnili basePackages = "com.example.springbootmultipledatasource.primary.repository" váš balíček úložiště zde

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

Sekundární Mongo šablona:Ujistěte se, že jste změnili balíček sekundárního úložiště zde basePackages = "com.example.springbootmultipledatasource.secondary.repository

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

Nyní můžete vytvořit svůj dokument, úložiště, službu, kontrolér a můžete začít. Níže je struktura mého projektu, kterou můžete vytvořit nebo mít jinou.




  1. Jak hledat dílčí pole v MongoDB

  2. Aktualizace ve forEach na mongodb shellu

  3. Existuje agregace MongoDB podle pole

  4. Absolutní hodnota s agregačním rámcem MongoDB