FerretDB 0.3 đã được phát hành, hãy tìm hiểu xem có gì mới trong quá trình hiện đại hóa MangoDB này

Vài tuần trước chúng tôi chia sẻ ở đây trên blog tin tức về đổi tên dự án MangoDB cho phép bạn thay thế DBMS hướng tài liệu của MongoDB bằng PostgreSQL mà không thực hiện bất kỳ thay đổi nào đối với mã ứng dụng.

Tên dự án mới là FerretDB và mới đây phiên bản 0.3 của dự án đã được phát hành. Phiên bản FerretDB 0.3 giới thiệu lệnh findAndModify, lệnh này sửa đổi tài liệu nhưng trả về phiên bản gốc của nó, cũng như các toán tử cập nhật trường, trong số những thứ khác.

Đối với những người vẫn chưa biết về FerretDB, bạn nên biết rằng điều này được triển khai dưới dạng một máy chủ proxy chuyển các lệnh gọi đến MongoDB thành các truy vấn SQL sang PostgreSQL, cho phép bạn sử dụng PostgreSQL làm bộ nhớ thực.

Nhu cầu di chuyển có thể phát sinh liên quan đến việc chuyển đổi MongoDB sang giấy phép SSPL không miễn phí, dựa trên giấy phép AGPLv3, nhưng không mở, vì nó chứa yêu cầu phân biệt đối xử để cung cấp theo giấy phép SSPL không chỉ ứng dụng mã chính nó, mà còn là mã nguồn của tất cả các thành phần liên quan đến việc cung cấp dịch vụ đám mây.

Đối tượng mục tiêu chính của FerretDB là người dùng không sử dụng các tính năng nâng cao MongoDB trong các ứng dụng của họ, nhưng muốn sử dụng một phần mềm hoàn toàn mở.

Ở giai đoạn phát triển hiện tại, FerretDB vẫn chỉ hỗ trợ một phần các tính năng của MongoDB thường được sử dụng trong các ứng dụng điển hình. Trong tương lai, họ có kế hoạch đạt được hỗ trợ trình điều khiển đầy đủ cho MongoDB và cung cấp khả năng sử dụng FerretDB như một sự thay thế minh bạch cho MongoDB.

MongoDB chiếm một vị trí thích hợp giữa các hệ thống nhanh và có thể mở rộng hoạt động trên dữ liệu khóa / giá trị và các DBMS quan hệ có chức năng và dễ truy vấn.

MongoDB hỗ trợ lưu trữ tài liệu ở định dạng giống JSON, có ngôn ngữ khá linh hoạt để tạo truy vấn, có thể tạo chỉ mục cho các thuộc tính được lưu trữ khác nhau, cung cấp khả năng lưu trữ hiệu quả các đối tượng lớn nhị phân, hỗ trợ ghi nhật ký các hoạt động để thay đổi và thêm dữ liệu vào cơ sở dữ liệu. có thể hoạt động theo mô hình Bản đồ / Rút gọn, nó hỗ trợ sao chép và xây dựng các cấu hình chịu lỗi.

Do sự khác biệt về ngữ nghĩa của các hàm json PostgreSQL và MongoDB, có một sự khác biệt trong hành vi khi so sánh và đặt hàng các loại khác nhau. Để giải quyết vấn đề này, một mẫu dữ liệu dư thừa hiện được trích xuất từ ​​PostgreSQL và việc lọc kết quả được thực hiện ở phía FerretDB, điều này có thể lặp lại hành vi của MongoDB trong hầu hết các tình huống.

Những điểm mới chính của FerretDB 0.3

Như đã đề cập ở phần đầu, phiên bản mới của FerretDB 0.3 nổi bật với việc giới thiệu lệnh findAndModify, sửa đổi một tài liệu, nhưng trả về phiên bản gốc của nó.

Những thay đổi khác nổi bật là Xử lý số XNUMX âm đã được cải thiện, cũng như hỗ trợ sắp xếp các kiểu dữ liệu vô hướng đã được thêm vào.

Cũng được đánh dấu là các toán tử cập nhật trường mới được triển khai: $ inc và $ set, cộng với hỗ trợ sắp xếp các kiểu dữ liệu vô hướng đã được thêm vào.

Mặt khác, nó được đề cập rằng nhiều cải tiến khác nhau đã được thực hiện để xử lý các phiên bản PostgreSQL và MongoDB.

Bên cạnh đó, cũng lưu ý rằng kiểm tra không chính xác đối với toán tử $ mod đã được sửa, cũng là bài kiểm tra được thực hiện trên tất cả các hệ điều hành ARM64 và khả năng hiển thị nhiều hơn đã được bổ sung cho các cấp ghi lỗi bộ định tuyến / proxy.

Những thay đổi khác nổi bật so với phiên bản mới này:

  • Cập nhật CODEOWNERS
  • Đồng bộ hóa bộ điều khiển giả và pg
  • Đổi tên hằng số OP_ * thành hằng số OpCode *
  • Cải thiện gopkg.in/yaml.v3
  • Bump gopkg.in/yaml.v3 trong công cụ
  • Tạo đường dẫn loại
  • Hoảng sợ trong các giá trị thứ tự không mong muốn
  • Thêm một số nhận xét cho các hàm và biến
  • Xóa mã chết

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.