Làm cách nào để truy vấn MongoDB trong Spring Boot?

Lớp MongoTemplate cung cấp cho chúng tôi các tính năng để tương tác với cơ sở dữ liệu và cung cấp các hoạt động để tạo, cập nhật, xóa và truy vấn các tài liệu MongoDB theo cách an toàn theo luồng. Lớp MongoTemplate thực hiện giao diện MongoOperations. Bạn có thể tìm thấy các phương pháp…

Trong hệ sinh thái mùa xuân, thật dễ dàng để định cấu hình, bật hoặc tắt các tính năng khác nhau thông qua các thuộc tính bên ngoài. Mẫu Mongo cũng không ngoại lệ và thật đơn giản khi thêm một lớp lót vào ứng dụng. tệp thuộc tính

logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG

Tuy nhiên, nếu bạn đang sử dụng phiên bản phản ứng của Mẫu Mongo, cấu hình sẽ hơi khác một chút

logging.level.org.springframework.data.mongodb.core.ReactiveMongoTemplate=DEBUG

Ngoài ra, vì các kho lưu trữ Dữ liệu Chuỗi được xây dựng trên Mẫu Mongo, nên tất cả các truy vấn được tạo bởi các kho lưu trữ sẽ được ghi lại tự động sau khi tính năng ghi nhật ký được bật
Nếu chúng tôi lấy kho lưu trữ và thực thể từ bài đăng trên blog trước đó và chạy đoạn mã sau

@Bean
CommandLineRunner runner(final ProductsRepository productsRepository){
return args -> {
productsRepository.deleteAll();
productsRepository.insert(new Product("A new product"));
productsRepository.findAll();
productsRepository.count();
};
}

Đầu ra trong nhật ký

2022-05-17 20:15:03.115 DEBUG 36105 --- [ main] o.s.data.mongodb.core.MongoTemplate : Remove using query: {} in collection: product.2022-05-17 20:15:03.135 INFO 36105 --- [ main] org.mongodb.driver.connection : Opened connection [connectionId{localValue:3, serverValue:12}] to localhost:270172022-05-17 20:15:03.183 DEBUG 36105 --- [ main] o.s.data.mongodb.core.MongoTemplate : Inserting Document containing fields: [name, _class] in collection: product2022-05-17 20:15:03.210 DEBUG 36105 --- [ main] o.s.data.mongodb.core.MongoTemplate : find using query: {} fields: Document{{}} for class: class com.sabljakovic.mongospringdemo.Product in collection: product2022-05-17 20:15:03.235 DEBUG 36105 --- [ main] o.s.data.mongodb.core.MongoTemplate : Executing count: {} in collection: product

Như chúng ta có thể thấy, Trình ghi mẫu Mongo không ghi lại các truy vấn thô mà chúng ta thực hiện và thực hiện trực tiếp trong trình bao mongo. Tuy nhiên, điều này có thể hữu ích để gỡ lỗi trong một số tình huống nhất định

MongoDB Compass cung cấp tính năng chuyển đổi truy vấn MongoDB sang một ngôn ngữ lập trình cụ thể. Vui lòng tham khảo tài liệu sau

Làm cách nào để truy vấn MongoDB trong Spring Boot?
mongodb. com

Làm cách nào để truy vấn MongoDB trong Spring Boot?

Xuất truy vấn sang ngôn ngữ cụ thể — MongoDB Compass

Tuy nhiên, đây sẽ là mã Java

/*
 * Requires the MongoDB Java Driver.
 * https://mongodb.github.io/mongo-java-driver
 */

Bson filter = new Document();
Bson sort = new Document("$natural", -1L);

MongoClient mongoClient = new MongoClient(
    new MongoClientURI(
        "mongodb+srv://m001-student:[email protected]/test?authSource=admin&replicaSet=atlas-gbccyn-shard-0&readPreference=primary&ssl=true"
    )
);
MongoDatabase database = mongoClient.getDatabase("sample_analytics");
MongoCollection<Document> collection = database.getCollection("accounts");
FindIterable<Document> result = collection.find(filter)
    .sort(sort)
    .limit((int)5L);

HOẶC LÀ

    CriteriaDefinition filter = (CriteriaDefinition) new Document();
    List sort = (List) new Document("$natural", -1L);

    MongoClient mongoClient = new MongoClient(
    new MongoClientURI(
        "mongodb+srv://m001-student:[email protected]/test?authSource=admin&replicaSet=atlas-gbccyn-shard-0&readPreference=primary&ssl=true"
    )
);
    Query query = new Query().addCriteria(filter).with(Sort.by(sort));

Làm cách nào để truy vấn MongoDB trong Spring Boot?
Vartika_Malguri

về cơ bản là tìm các tài liệu gần đây nhất trong bộ sưu tập

Xin lưu ý rằng $natural là “Thứ tự mà cơ sở dữ liệu đề cập đến các tài liệu trên đĩa” (xem [$natural]() ), do đó, nó có thể không sắp xếp dựa trên các tài liệu được chèn gần đây nhất. Trên thực tế, bạn có thể bỏ tiêu chí sắp xếp tự nhiên và nhận được cùng một thứ tự tài liệu. Nếu bạn có thể sửa đổi thiết kế lược đồ để có trường createdAt, thì trường createdAt có thể được sử dụng để sắp xếp dữ liệu theo yêu cầu

Ngoài ra, sẽ khuyên bạn nên truy cập tài liệu sau

  • Tích hợp khởi động mùa xuân với hướng dẫn MongoDB. MongoDB để hiểu thêm về cách tích hợp MongoDB với ứng dụng Spring boot và giải thích cách truy cập dữ liệu MongoDB bằng các phương thức khởi động mùa xuân điển hình

  • https. //www. mongodb. com/docs/manual/tutorial/query-documents/ bạn có thể tham khảo tài liệu được đề cập để đọc thêm về cách làm việc với truy vấn bằng cách chọn ngôn ngữ cần thiết

  • Bắt đầu với MongoDB và Java - Hướng dẫn thao tác CRUD Bài hướng dẫn đăng trên blog này sẽ giúp bạn hiểu về cách thực hiện các thao tác CRUD với MongoDB bằng cách sử dụng Java

    Làm cách nào để viết truy vấn trong MongoDB trong Spring Boot?

    2. 1 Bước#0. Thiết lập MongoDB với Spring Boot
    2. 2 Bước #1. Tạo Dự án khởi động mùa xuân bằng STS (Bộ công cụ mùa xuân)
    2. 3 Bước #2. Cập nhật ứng dụng. của cải
    2. 4 Bước#3. Tạo lớp thực thể
    2. 5 Bước #4. Tạo giao diện kho lưu trữ
    2. 6 Bước #4. Lưu một số bản ghi vào MongoDB. 2. 6. 1 Đầu ra từ MongoDB

    Làm cách nào để đọc dữ liệu từ MongoDB trong Spring Boot?

    Bắt đầu với Spring Initializr .
    Chọn Gradle hoặc Maven và ngôn ngữ bạn muốn sử dụng. Hướng dẫn này giả định rằng bạn đã chọn Java
    Nhấp vào Phụ thuộc và chọn Dữ liệu mùa xuân MongoDB
    Nhấp vào Tạo
    Tải xuống tệp ZIP kết quả, đây là kho lưu trữ ứng dụng web được định cấu hình theo lựa chọn của bạn

    Làm cách nào để sử dụng chú thích @query cho MongoDB?

    Chú thích @Query khá đơn giản và dễ hiểu. @Query("mongo query") public List Khi phương thức findBy() được gọi, . Hãy nhớ rằng trong thời gian biên dịch, Spring Boot không biết trước loại truy vấn sẽ trả về.

    Làm cách nào để lấy các trường cụ thể từ MongoDB trong Spring Boot?

    Chỉ trả về các trường cụ thể cho một truy vấn trong Spring Data MongoDB .
    Tổng quan. Khi sử dụng Spring Data MongoDB, chúng ta có thể cần hạn chế các thuộc tính được ánh xạ từ một đối tượng cơ sở dữ liệu. .
    Hạn chế các trường MongoDB bằng phép chiếu. .
    Thực hiện phép chiếu. .
    Kiểm tra bằng MongoRepository và MongoTemplate. .
    Phần kết luận