Dữ liệu mùa xuân mongodb là gì?

Cơ sở dữ liệu hướng tài liệu là một trong những loại cơ sở dữ liệu NoSQL, lưu giữ thông tin dưới dạng kho lưu trữ khóa-giá trị. MongoDB là một chương trình cơ sở dữ liệu như vậy. Spring Data MongoDB, là một phần của dự án ô Spring Data lớn hơn, tạo điều kiện thuận lợi cho sự tương tác của các chương trình Java với cơ sở dữ liệu tài liệu MongoDB

Dữ liệu mùa xuân là một dự án ô chứa nhiều mô hình con, mỗi mô hình con cụ thể cho một cơ sở dữ liệu cụ thể. Trong bài viết này, chúng ta sẽ đề cập đến Spring Data MongoDB bằng cách xây dựng một ứng dụng lưu trữ và truy xuất dữ liệu từ MongoDB, một cơ sở dữ liệu NO-SQL dựa trên tài liệu

Nếu bạn muốn đọc thêm về Dữ liệu mùa xuân, chúng tôi đã trình bày chi tiết về nó trong - Hướng dẫn về Dữ liệu mùa xuân JPA

MongoDB

MongoDB là một cơ sở dữ liệu NoSQL hướng tài liệu lưu trữ các tài liệu giống như JSON với các lược đồ động. Nó thường được sử dụng để lưu trữ dữ liệu khối lượng lớn

Trước khi tiếp tục, bạn nên biết một số thuật ngữ cơ sở dữ liệu NoSQL. Xin lưu ý rằng các thuật ngữ này không chính xác là một đối một so với cơ sở dữ liệu SQL quan hệ

  • cơ sở dữ liệu. Nó là nơi chứa các bộ sưu tập và có thể được coi là tương tự như cơ sở dữ liệu RDBMS, là nơi chứa các Bảng
  • Bộ sưu tập. Nó tương đương với các Bảng trong RDBMS, nhưng không giống như một bộ sưu tập, nó có một lược đồ động. Một bộ sưu tập tồn tại trong cơ sở dữ liệu
  • Tài liệu. Nó là một bản ghi duy nhất trong bộ sưu tập MongoDB. Nó có thể được coi là một hàng trong RDBMS
  • Đồng ruộng. Một tài liệu không có hoặc nhiều trường. Nó giống như cột RDBMS có cặp khóa-giá trị

Để thiết lập máy chủ MongoDB trên máy cục bộ của bạn, bạn có thể tải xuống bản cài đặt tại đây tùy theo hệ điều hành của bạn. Sau đó, bạn cũng có thể tải xuống một công cụ như Compass để có GUI đẹp mắt để tương tác với máy chủ của mình

Một tùy chọn khác và tùy chọn mà chúng tôi sẽ sử dụng là MongoDB Atlas, đây là cơ sở dữ liệu đám mây dưới dạng dịch vụ. Sau khi bạn đăng ký, hãy đăng nhập và xây dựng một cụm bằng bậc miễn phí

Để kết nối với cụm của chúng tôi, chúng tôi phải tạo một người dùng

Bây giờ hãy tạo cơ sở dữ liệu và bộ sưu tập của chúng ta

Bây giờ chúng tôi được thiết lập để kết nối với bộ sưu tập của mình bằng ứng dụng Spring của chúng tôi

Dự án MongoDB dữ liệu mùa xuân

Thành lập

Cách tốt nhất để bắt đầu với một dự án khung là truy cập Spring Initializr. Chọn phiên bản Spring Boot ưa thích của bạn và thêm các phụ thuộc

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
0 và
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
1

Sau này, hãy tạo nó dưới dạng dự án Maven và bạn đã sẵn sàng

Xác định một bộ sưu tập

Trước tiên, hãy xác định lớp mô hình bộ sưu tập

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
2 của chúng tôi

Bây giờ chúng ta hãy xem những chú thích này

  • @Tài liệu. Điều này đánh dấu lớp là một đối tượng miền sẽ được lưu vào cơ sở dữ liệu. Tên bộ sưu tập mặc định được sử dụng là tên lớp (ký tự đầu tiên được viết thường). Chúng ta có thể ánh xạ tới một bộ sưu tập khác trong cơ sở dữ liệu bằng cách sử dụng thuộc tính
    spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
    
    3 của chú thích
  • @ID. Điều này đánh dấu trường được sử dụng cho mục đích nhận dạng
  • @Đã lập chỉ mục (duy nhất = đúng). Điều này được áp dụng cho trường sẽ được lập chỉ mục với một ràng buộc là duy nhất

Xác định kho lưu trữ

Chúng tôi tạo một kho lưu trữ bằng cách tạo một giao diện

public interface CandidateRepository extends MongoRepository {}

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
4 mở rộng giao diện
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
5 và cắm vào kiểu dữ liệu của tài liệu mà chúng tôi đang làm việc, tôi. e
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
2 và
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
7 tương ứng

Điều này sẽ cung cấp cho chúng tôi quyền truy cập vào tất cả các hoạt động CRUD xung quanh bộ sưu tập MongoDB

Kết nối cập nhật

Để thiết lập một kết nối phù hợp, chúng ta cần xác định các thuộc tính kết nối trong

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
8

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true

Bạn có thể lấy các giá trị này trực tiếp từ MongoDB Atlas UI

Ghi chú. Nếu mật khẩu của bạn chứa các ký tự đặc biệt thì nó phải được mã hóa URL

Theo mặc định, cụm của bạn được bảo mật để không nhận yêu cầu từ bất kỳ IP máy khách nào. Chúng tôi cần cho phép IP của mình có thể kết nối với cụm này thông qua Danh sách trắng IP

Xác định bộ điều khiển

Bây giờ, hãy sử dụng kho lưu trữ của chúng tôi trong

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
9 thông qua chú thích
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
20

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
2

Thao tác CRUD đơn giản

Chèn

Hãy tạo một ánh xạ

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
21 sẽ chèn dữ liệu vào MongoDB của chúng ta

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
5

Chúng tôi đã sử dụng phương thức

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
22 trên đối tượng
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
23. Đối tượng
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
2 được chụp bởi
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
25 và được sử dụng trực tiếp trong phương thức
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
22

Nếu chúng tôi cố gắng sử dụng lại cùng một ID email, chúng tôi sẽ gặp lỗi khóa trùng lặp

Chúng tôi cũng có thể kiểm tra trạng thái bộ sưu tập của mình trong Atlas

Đọc

Hãy tạo một vài ánh xạ ________ 127 để lấy các bản ghi của chúng ta

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
2

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
28 sẽ trả về tất cả các bản ghi trong cơ sở dữ liệu của chúng tôi, trong khi phương thức
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
29 sẽ trả về một bản ghi duy nhất dựa trên ID được truyền

Nếu bản ghi không xuất hiện, nó sẽ tạo ra một ngoại lệ thời gian chạy tùy chỉnh

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
50.
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
51 là một lớp tùy chỉnh trả về trạng thái
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
52 nếu nó bị ném

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
8

Nếu bạn muốn đọc thêm về điều này, chúng tôi đã trình bày chi tiết trong - Xử lý ngoại lệ trong mùa xuân

Bây giờ để cập nhật một bản ghi cụ thể, chúng tôi sẽ sử dụng ánh xạ

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
53

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
0

Trước tiên, chúng tôi kiểm tra xem

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
2 với
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
55 đã cho có mặt hay không. Nếu không, chúng tôi trả về trạng thái
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
52, nếu không, chúng tôi cập nhật toàn bộ đối tượng và lưu nó bằng phương thức
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
22

Xóa bỏ

Bây giờ, hãy xóa một bản ghi cụ thể bằng cách sử dụng ánh xạ ________ 158

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
6

Chúng tôi đã sử dụng phương pháp

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
59 trên
spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
23 để xóa mục nhập

Phương thức truy vấn tùy chỉnh

Chúng tôi có thể thêm một số phương thức vào

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
4 của mình để có một số chức năng bổ sung dựa trên yêu cầu kinh doanh của chúng tôi

public interface CandidateRepository extends MongoRepository {}
0

Ở trên, chúng tôi đã thêm chức năng tìm kiếm dựa trên email và kinh nghiệm. Tất cả những gì chúng ta cần làm là tuân theo quy ước đặt tên do Spring Data đặt ra

Sau phương thức

spring.data.mongodb.uri=mongodb+srv://:@-/?retryWrites=true
22, chúng tôi viết tên của thuộc tính trong trường hợp lạc đà, theo sau là bất kỳ hạn chế nào khác mà chúng tôi có thể muốn thực thi. Các đối số của phương thức phải khớp với kỳ vọng của mệnh đề where. Dữ liệu mùa xuân sẽ tạo các truy vấn thực tế cho bạn trong quá trình khởi động ứng dụng bằng cách sử dụng giao diện này

Hãy sử dụng cái này trong bộ điều khiển của chúng ta

public interface CandidateRepository extends MongoRepository {}
2

Sự kết luận

Trong bài viết này, chúng tôi đã giới thiệu cách sử dụng Spring Data MongoDB để kết nối với máy chủ MongoDB. Trước tiên, chúng tôi đã tạo một máy chủ MongoDB trên đám mây bằng MongoDB Atlas và sau đó sử dụng Dữ liệu mùa xuân để kết nối với nó. Sau đó, chúng tôi đã thực hiện một số thao tác CRUD đơn giản cũng như viết một số truy vấn tùy chỉnh

Dữ liệu mùa xuân để làm gì?

Nhiệm vụ của Spring Data là cung cấp một mô hình lập trình dựa trên Spring quen thuộc và nhất quán để truy cập dữ liệu trong khi vẫn giữ được các đặc điểm đặc biệt của kho lưu trữ dữ liệu cơ bản.

Làm cách nào để sử dụng MongoDB trong mùa xuân?

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

Dữ liệu khởi động mùa xuân MongoDB là gì?

spring-boot-starter-data-mongodb là trình khởi động để sử dụng cơ sở dữ liệu hướng tài liệu MongoDB và Spring Data MongoDB . spring-boot-starter-test là phần khởi động để thử nghiệm các ứng dụng Spring Boot với các thư viện bao gồm JUnit, Hamcrest và Mockito.

Dữ liệu Spring JPA là gì?

JPA dữ liệu mùa xuân nhằm mục đích cải thiện đáng kể việc triển khai các lớp truy cập dữ liệu bằng cách giảm nỗ lực xuống mức thực sự cần thiết . Là nhà phát triển, bạn viết các giao diện kho lưu trữ của mình, bao gồm các phương thức tìm tùy chỉnh và Spring sẽ tự động cung cấp triển khai.