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