MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да инициализирате MongoClient веднъж в Spring Boot и да използвате неговите методи?

Ето няколко начина за създаване на екземпляр на MongoClient , конфигурирането и използването му в приложението Spring Boot.

(1) Регистриране на екземпляр на Mongo с използване на базирани на Java метаданни:

@Configuration
public class AppConfig {
    public @Bean MongoClient mongoClient() {
        return MongoClients.create();
    }
}

Използване от CommandLineRunner run на метод (всички примери се изпълняват по подобен начин ):

@Autowired 
MongoClient mongoClient;

// Retrieves a document from the "test1" collection and "test" database.
// Note the MongoDB Java Driver API methods are used here.
private void getDocument() {
    MongoDatabase database = client.getDatabase("test");
    MongoCollection<Document> collection = database.getCollection("test1");
    Document myDoc = collection.find().first();
    System.out.println(myDoc.toJson());
}


(2) Конфигурирайте с помощта на клас AbstractMongoClientConfiguration и използвайте с MongoOperations:

@Configuration
public class MongoClientConfiguration extends AbstractMongoClientConfiguration {

    @Override
    public MongoClient mongoClient() {
        return MongoClients.create();
    }

    @Override
    protected String getDatabaseName() {
        return "newDB";
    }
}

Имайте предвид, че можете да зададете името на базата данни (newDB ), към който можете да се свържете. Тази конфигурация се използва за работа с MongoDB база данни с помощта на Spring Data MongoDB API:MongoOperations (и неговата реализация MongoTemplate ) и MongoRepository .

@Autowired 
MongoOperations mongoOps;

// Connects to "newDB" database, and gets a count of all documents in the "test2" collection.
// Uses the MongoOperations interface methods.
private void getCollectionSize() {
    Query query = new Query();
    long n = mongoOps.count(query, "test2");
    System.out.println("Collection size: " + n);
}


(3) Конфигуриране чрез клас AbstractMongoClientConfiguration и използване с MongoRepository

Използвайки същата конфигурация MongoClientConfiguration клас (по-горе в тема 2 ), но допълнително анотирайте с @EnableMongoRepositories . В този случай ще използваме MongoRepository интерфейсни методи за получаване на данни за събиране като Java обекти.

Хранилището:

@Repository
public interface MyRepository extends MongoRepository<Test3, String> {

}

Test3.java POJO клас, представляващ test3 документ на колекцията:

public class Test3 {

    private String id;
    private String fld;

    public Test3() {    
    }

    // Getter and setter methods for the two fields
    // Override 'toString' method
    ...
}

Следният метод за получаване на документи и отпечатване като Java обекти:

@Autowired 
MyRepository repository;

// Method to get all the `test3` collection documents as Java objects.
private void getCollectionObjects() {
    List<Test3> list = repository.findAll();
    list.forEach(System.out::println);
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да покажа качено изображение в Back-end на Keystonejs

  2. как да намерите конкретен низ в двойка ключ стойност в mongodb

  3. Spring HATEOAS RepresentationModel, Не могат да се задават връзки към свойства, защото няма настройка, няма изсъхване и не е част от конструктора на постоянство

  4. Как да разположите MongoDB на Heroku

  5. MongoDB група по час