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

MongoDB năm 2018 - Một năm được đánh giá

MongoDB cho đến nay là sự lựa chọn phổ biến nhất trong thế giới NoSQL vì kiến ​​trúc phân tán của nó cho phép mở rộng nhiều hơn và mô hình dữ liệu tài liệu của nó cung cấp tính linh hoạt tốt cho các nhà phát triển. Hầu như mỗi năm, phiên bản MongoDB chính đều được phát hành và năm 2018 cũng không ngoại lệ. MongoDB 4.0 được phát hành vào tháng 7 năm 2018, sau đó là một số bản phát hành nhỏ khác. Với MongoDB phiên bản 4.0, các giao dịch đa tài liệu và chuyển đổi loại hiện được hỗ trợ. MongoDB đã giới thiệu công cụ mới có tên là biểu đồ MongoDB (beta) và hỗ trợ thêm trình xây dựng đường ống tổng hợp trong la bàn MongoDB vào năm 2018. Trong bài viết này, chúng ta sẽ điểm qua một số tính năng thú vị của MongoDB được phát hành vào năm 2018.

Giao dịch ACID nhiều tài liệu

Đây là tính năng được chờ đợi nhất trong MongoDB. Bắt đầu từ phiên bản 4.0, các giao dịch axit đa tài liệu chống lại các tập hợp bản sao đã sẵn sàng sản xuất và được hỗ trợ bởi MongoDB. Tất cả các giao dịch MongoDB hiện mở rộng thuộc tính ACID đảm bảo tính toàn vẹn của dữ liệu. Thực sự dễ dàng thêm giao dịch axit trong bất kỳ ứng dụng nào cần chúng và chúng không ảnh hưởng đến các hoạt động khác không yêu cầu chúng. Với sự hỗ trợ của các giao dịch axit nhiều tài liệu, bất kỳ thao tác ghi nào được thực hiện bên trong giao dịch, sẽ không hiển thị bên ngoài giao dịch. Dưới đây là một số lệnh hữu ích để thêm các giao dịch axit nhiều tài liệu bên trong ứng dụng của bạn.

Hàm Mô tả
Session.startTransaction () Bắt đầu một giao dịch mới
Session.commitTransaction () Cam kết giao dịch
Session.abortTransaction () Hủy giao dịch

Dưới đây là một ví dụ nhỏ về việc thêm các hoạt động giao dịch bằng Mongo shell:

akashk:PRIMARY> use mydb
akashk:PRIMARY> db.createCollection(“newColl”)
akashk:PRIMARY> session = db.getMongo().startSession()
akashk:PRIMARY> session { "id" : UUID("62525323-1cd1-4ee8-853f-b78e593b46ba") }
akashk:PRIMARY> session.startTransaction()
akashk:PRIMARY> session.getDatabase("mydb").newColl.insert({name : 'hello'})
akashk:PRIMARY> WriteResult({ "nInserted" : 1 })
akashk:PRIMARY> session.commitTransaction()

Tất cả các giao dịch cung cấp chế độ xem dữ liệu nhất quán trên một hoặc nhiều bộ sưu tập trong cơ sở dữ liệu bằng cách sử dụng cách ly ảnh chụp nhanh. MongoDB sẽ không đẩy bất kỳ thay đổi chưa cam kết nào cho các nút / bản sao phụ. Sau khi giao dịch được cam kết, tất cả các thay đổi sẽ được áp dụng cho các nút phụ.

Có nhiều ví dụ mà chúng ta có thể sử dụng các giao dịch axit đa tài liệu MongoDB, chẳng hạn như

  • Chuyển tiền giữa các tài khoản ngân hàng
  • Hệ thống thanh toán
  • Hệ thống giao dịch
  • Hệ thống chuỗi cung ứng
  • Hệ thống thanh toán

Những điều cần xem xét khi thêm giao dịch

  1. MongoDB sẽ hủy bỏ bất kỳ giao dịch nào chạy trong hơn 60 giây.
  2. Không được thay đổi hơn 1000 tài liệu trong một giao dịch. Không có giới hạn cho các hoạt động đọc.
  3. Mọi giao dịch phải có kích thước nhỏ hơn 16MB vì ​​MongoDb lưu trữ mọi giao dịch dưới dạng một mục duy nhất trong oplog.
  4. Khi bạn hủy bỏ bất kỳ giao dịch nào, tất cả các thay đổi sẽ được khôi phục lại.

Toán tử chuyển đổi kiểu mới trong đường ống tổng hợp

Để có được thông tin chi tiết về dữ liệu theo thời gian thực và viết các truy vấn phức tạp, các nhà phát triển MongoDB thường thích tạo đường dẫn tổng hợp. Trong phiên bản MongoDB 4.0, một số toán tử chuyển đổi kiểu tổng hợp mới đã được thêm vào để truy vấn dữ liệu mà không xóa các trường riêng lẻ.

Toán tử tổng hợp Mô tả
$ chuyển đổi Chuyển đổi giá trị thành một loại được chỉ định
$ toDate Chuyển đổi giá trị thành Ngày tháng
$ toDecimal Chuyển đổi giá trị thành Thập phân
$ toDouble Chuyển đổi giá trị thành Double
$ toLong Chuyển đổi giá trị thành Long
$ toInt Chuyển đổi giá trị thành Số nguyên
$ toObjectId Chuyển đổi giá trị thành ObjectId
$ toString Chuyển đổi giá trị thành Chuỗi
$ ltrim Xóa các ký tự không cần thiết khỏi đầu chuỗi
$ rtrim Xóa các ký tự không cần thiết khỏi cuối chuỗi
$ trim Xóa các ký tự không cần thiết khỏi cả hai bên của chuỗi
Vài người trở thành MongoDB DBA - Đưa MongoDB vào Sản xuất Tìm hiểu về những điều bạn cần biết để triển khai, giám sát, quản lý và mở rộng MongoDBDownload miễn phí

Chức năng mở rộng của Luồng thay đổi

Chức năng của các luồng thay đổi cung cấp các bản cập nhật thay đổi dữ liệu theo thời gian thực mà không có bất kỳ cài đặt phức tạp nào đã được giới thiệu trong phiên bản 3.6. Với phiên bản 4.0, các luồng thay đổi có thể theo dõi các thay đổi của toàn bộ cơ sở dữ liệu hoặc cụm thay vì chỉ một bộ sưu tập hiện nay. Ngoài điều này, giờ đây, các luồng thay đổi cũng trả về dấu thời gian cụm được liên kết với một sự kiện có thể hữu ích cho các ứng dụng máy chủ.

Di chuyển dữ liệu nhanh hơn

Khi cơ sở dữ liệu của bạn được phân đoạn trên toàn bộ cụm, việc thêm và xóa các nút một cách đàn hồi khỏi một nhóm được phân đoạn có thể tốn thời gian vào một số thời điểm. Trình cân bằng cụm phân đoạn chịu trách nhiệm phân phối dữ liệu trên tất cả các phân đoạn, đã được nâng cấp lớn trong phiên bản 4.0. Giờ đây, nó có thể kết thúc quá trình di chuyển dữ liệu với tốc độ nhanh hơn 40%.

Số lần đọc phụ không bị chặn

Trước đây, MongoDB đã từng chặn tất cả các lần đọc thứ cấp khi các mục nhập oplog được áp dụng cho các nút thứ cấp. Điều này đã gây ra độ trễ thay đổi của các lần đọc thứ cấp. Từ MongoDB 4.0, các lần đọc thứ cấp đã trở thành không bị chặn do thông lượng thiết lập bản sao tăng lên và độ trễ đọc được cải thiện.

Trình tạo đường ống tổng hợp trong La bàn

La bàn MongoDB là công cụ GUI cho MongoDB để trực quan hóa và truy vấn dữ liệu. Năm nay, la bàn MongoDB có tính năng mới về đường ống tổng hợp. Nó cung cấp trình soạn thảo truy vấn trực quan để xây dựng các đường ống tổng hợp nhiều giai đoạn. Đây là ảnh chụp nhanh của nó:

Trình tạo truy vấn tổng hợp trong La bàn

Ngoài tính năng này, la bàn còn có khả năng xuất các truy vấn của bạn sang bất kỳ ngôn ngữ mã bản địa nào mà bạn chọn ngay bây giờ.

Biểu đồ MongoDB

MongoDB Charts là công cụ mới cho phép người dùng nhanh chóng tạo các hình ảnh trực quan hóa dữ liệu MongoDB theo thời gian thực. Công cụ này được xây dựng cho mô hình dữ liệu tài liệu với hỗ trợ xử lý kiểu, giảm mảng và cả tài liệu lồng nhau. Công cụ này cho phép người dùng tạo trang tổng quan biểu đồ và chia sẻ nó với những người dùng khác. Biểu đồ MongoDB hiện được tích hợp hoàn toàn với MongoDB Atlas.

Các tính năng MongoDB mới khác

  • MongoDB Stitch:Nền tảng không máy chủ để phát triển ứng dụng khách có thể truy cập các dịch vụ Mongo một cách an toàn.
  • MongoDB Kubernetes:Để triển khai MongoDB trong cụm Kubernetes.
  • MongoDB Mobile:Cung cấp tính linh hoạt và sức mạnh của MongoDB ở dạng nhỏ gọn để có thể sử dụng trong các thiết bị IOT.
  • Dịch vụ đám mây giám sát MongoDB:Để đẩy siêu dữ liệu giám sát lên đám mây giám sát MongoDB miễn phí.

Tương lai của MongoDB

MongoDB cũng có kế hoạch tung ra một số tính năng mới với phiên bản 4.2 của nó, bao gồm,

  • Công cụ WiredTiger mở rộng hơn
  • Người quản lý giao dịch
  • Các giao dịch trong quá trình triển khai phân đoạn
  • Lượt đọc toàn cầu về thời gian

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lỗi Mongo khi tôi kiểm soát hotfix

  2. Làm cách nào để ghi lại các truy vấn của tôi trong MongoDB C # Driver 2.0?

  3. Làm thế nào để xóa tài liệu bằng cách truy vấn hiệu quả trong mongo?

  4. Mongo chỉ mục duy nhất không phân biệt chữ hoa chữ thường

  5. Các giao dịch MongoDB của Spring Data