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

Làm thế nào để khởi tạo MongoClient một lần trong Spring Boot và sử dụng các phương thức của nó?

Dưới đây là một số cách để tạo một phiên bản của MongoClient , định cấu hình và sử dụng nó trong ứng dụng Spring Boot.

(1) Đăng ký Phiên bản Mongo bằng Siêu dữ liệu dựa trên Java:

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

Cách sử dụng từ CommandLineRunner run phương thức ( tất cả các ví dụ đều chạy tương tự ):

@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) Định cấu hình bằng cách sử dụng lớp AbstractMongoClientConfiguration và sử dụng với MongoOperations:

@Configuration
public class MongoClientConfiguration extends AbstractMongoClientConfiguration {

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

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

Lưu ý rằng bạn có thể đặt tên cơ sở dữ liệu (newDB ) bạn có thể kết nối với. Cấu hình này được sử dụng để làm việc với cơ sở dữ liệu MongoDB bằng cách sử dụng các API MongoDB của Spring Data:MongoOperations (và việc triển khai nó MongoTemplate ) và 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) Định cấu hình bằng lớp AbstractMongoClientConfiguration và sử dụng với MongoRepository

Sử dụng cùng một cấu hình MongoClientConfiguration lớp ( ở trên trong chủ đề 2 ), nhưng chú thích thêm bằng @EnableMongoRepositories . Trong trường hợp này, chúng tôi sẽ sử dụng MongoRepository các phương thức giao diện để lấy dữ liệu thu thập dưới dạng các đối tượng Java.

Kho lưu trữ:

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

}

Test3.java Lớp POJO đại diện cho test3 tài liệu của bộ sưu tập:

public class Test3 {

    private String id;
    private String fld;

    public Test3() {    
    }

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

Phương pháp sau để lấy tài liệu và in dưới dạng đối tượng 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. Làm thế nào để sử dụng tổng hợp MongoDB để lấy nhóm đầu tiên của mỗi nhóm, bao gồm cả null?

  2. Cấu trúc và cú pháp truy vấn cho tài liệu đệ quy trong MongoDB?

  3. Kiểm tra kết nối với MongoDB

  4. Công dụng của tệp mongo.lock là gì?

  5. lấy giá trị bằng tên khóa mongodb node.js trình điều khiển