Nâng cấp trình điều khiển java MongoDB

Sao chép phiên bản hỗn hợp chỉ được hỗ trợ tạm thời như một phần của việc nâng cấp phiên bản chính (i. e. 2. 4 => 2. 6 hoặc 2. 6 => 3. 0) và bạn rất có thể gặp sự cố khi bỏ qua nhiều phiên bản chính -- phiên bản này chưa được kiểm tra hoặc hỗ trợ và đã có những thay đổi quan trọng đối với các tính năng như xác thực

Bạn nên đọc kỹ các thay đổi về khả năng tương thích trước khi nâng cấp và đảm bảo rằng bạn đã thử nghiệm trong môi trường DEV/UAT trước khi đưa vào sản xuất

Đối với MongoDB 3. 0 bạn cần tối thiểu 2. 13 trình điều khiển Java (lý tưởng là 3. 0, đây là bản phát hành sản xuất hiện tại)

Hiện tại mình đang dùng morphia 1. 2. 2 (Trình điều khiển phiên bản 3. 2. 2) và 1. 1. 1 (Phiên bản trình điều khiển là 3. 0. 2) trong hai dự án khác nhau sử dụng cùng một cơ sở dữ liệu

Tôi thấy khả năng tương thích của trình điều khiển Mongodb JAVA. http. //mongodb. github. io/mongo-java-driver/3. 6/đang nâng cấp/ nói rằng tôi cần trình điều khiển java phiên bản 3. 4 cho mongodb 3. 4

Điều đó có nghĩa là tôi cũng phải nâng cấp morphia của mình để phù hợp với khả năng tương thích của trình điều khiển Java mongodb?

- stackoverflow. com

ghi bàn. 0

hình thái 1. 2. 2 nên tiếp tục hoạt động tốt với 3. 4 tài xế. Tôi không thể đảm bảo các trình điều khiển mới nhất tuyệt đối nhưng tôi cho rằng chúng có thể cũng hoạt động với phiên bản Morphia đó

3. 8 giới thiệu một thay đổi đột phá nhỏ nhưng quan trọng đối với API hiện tại cho bất kỳ ứng dụng nào đã phụ thuộc vào hỗ trợ phiên (được giới thiệu trong phiên bản 3. 6 để hỗ trợ tính nhất quán nhân quả). loại ClientSession thay đổi từ com.mongodb.session.ClientSession thành com.mongodb.client.ClientSession. Đây là cả nguồn và nhị phân không tương thích với 3. 7 phát hành. Thay đổi này là bắt buộc để giới thiệu hỗ trợ trong trình điều khiển cho các giao dịch hoạt động trong cả trình điều khiển đồng bộ và không đồng bộ

Ngoài ra, giá trị authSource mặc định cho các chuỗi kết nối có authMechanism của PLAIN đã thay đổi từ admin thành $external. Người dùng muốn tiếp tục sử dụng xác thực PLAIN với cơ sở dữ liệu admin nên khai báo authSource=admin trên chuỗi kết nối

Nếu không, 3. 8 là nhị phân và nguồn tương thích với 3. 7, ngoại trừ các phương thức đã được thêm vào các giao diện được đánh dấu là không ổn định và các thay đổi đối với các lớp hoặc giao diện đã được đánh dấu là nội bộ hoặc được chú thích là Beta

Nâng cấp từ 2. x

Xem hướng dẫn Nâng cấp trong phần 3. 0 tài liệu tham khảo trình điều khiển để phá vỡ các thay đổi trong 3. 0

yêu cầu hệ thống

JVM tối thiểu bây giờ là Java 6. tuy nhiên, các tính năng cụ thể yêu cầu Java 7

  • Hỗ trợ SSL yêu cầu Java 7 để thực hiện xác minh tên máy chủ, được bật theo mặc định. Xem SSL để biết chi tiết về cách tắt xác minh tên máy chủ
  • API không đồng bộ yêu cầu Java 7, vì theo mặc định, nó dựa vào AsynchronousSocketChannel để triển khai. Xem Async để biết chi tiết về cách định cấu hình trình điều khiển để sử dụng Netty thay thế

khả năng tương thích

Bảng sau chỉ định khả năng tương thích của trình điều khiển Java MongoDB để sử dụng với một phiên bản Java cụ thể

4. 0 là một bản phát hành chính theo định nghĩa về phiên bản ngữ nghĩa. Do đó, người dùng nâng cấp lên bản phát hành này sẽ mong đợi những thay đổi đột phá. Điều đó nói rằng, chúng tôi đã cố gắng đảm bảo rằng quá trình nâng cấp diễn ra liền mạch nhất có thể. Thay đổi đột phá như sau

  • Nhiều lớp và phương thức đã bị xóa khỏi trình điều khiển. Tất cả các phần tử API này được chú thích là không dùng nữa trong 3. 12, vì vậy nếu bạn biên dịch ứng dụng của mình với 3. 12 và bật cảnh báo không dùng nữa trong trình biên dịch, bạn sẽ có thể xác định tất cả các cách sử dụng các phần tử API này và làm theo các đề xuất có trong Javadoc cho từng phần tử API để loại bỏ việc sử dụng khỏi ứng dụng của bạn. Hầu hết các phần tử API này dường như không được sử dụng bởi các ứng dụng thông thường, nhưng một trong số đó đề cập rõ ràng. toàn bộ trình điều khiển không đồng bộ dựa trên gọi lại đã bị xóa. Các ứng dụng dựa trên trình điều khiển này phải chuyển ứng dụng của chúng sang trình điều khiển Luồng phản ứng hoặc nếu không thì phải duy trì trên 3. phát hành trình điều khiển x
  • Trong khi phương thức com.mongodb.MongoClient#getDB không được dùng nữa trong 3. x, nó chưa bị xóa trong bản phát hành này. Nó sẽ duy trì ít nhất cho đến chu kỳ phát hành chính tiếp theo
  • Các phương thức của trình trợ giúp chèn hiện trả về một đối tượng kết quả chèn thay vì void
  • Các phương thức com.mongodb.client.ClientSession0 khác nhau trên com.mongodb.client.ClientSession1, com.mongodb.client.ClientSession2 và com.mongodb.client.ClientSession3 hiện trả về JSON “thoải mái” thay vì JSON “nghiêm ngặt”. Điều này tạo ra các tài liệu JSON dễ đọc hơn với chi phí mất một số thông tin loại BSON (e. g. , phân biệt giữa số nguyên 32 và 64 bit)
  • Biểu diễn BSON mặc định của các giá trị com.mongodb.client.ClientSession4 đã thay đổi từ com.mongodb.client.ClientSession5 thành com.mongodb.client.ClientSession6. Các ứng dụng lưu trữ hoặc truy xuất các giá trị UUID phải chỉ định rõ ràng đại diện nào sẽ sử dụng, thông qua thuộc tính com.mongodb.client.ClientSession7 của com.mongodb.client.ClientSession8 (hoặc com.mongodb.client.ClientSession00 cho trình điều khiển kế thừa)
  • Nhóm kết nối không còn thực thi bất kỳ hạn chế nào về kích thước của hàng đợi của các luồng hoặc các tác vụ không đồng bộ yêu cầu kết nối với MongoDB. Tùy thuộc vào ứng dụng để điều tiết các yêu cầu đầy đủ thay vì dựa vào trình điều khiển để ném com.mongodb.client.ClientSession01
  • Trình điều khiển không còn đăng nhập qua JUL (com.mongodb.client.ClientSession02). Khung ghi nhật ký được hỗ trợ duy nhất là SLF4J
  • Trình điều khiển được nhúng và Android đã bị xóa. Các ứng dụng dựa trên các trình điều khiển này phải duy trì trên phiên bản 3. phát hành trình điều khiển x
  • “Uber-jars” của com.mongodb.client.ClientSession03 và com.mongodb.client.ClientSession04 không còn được xuất bản nữa. Các ứng dụng tham chiếu một trong hai tạo phẩm này phải chuyển sang com.mongodb.client.ClientSession05 hoặc com.mongodb.client.ClientSession06, tùy thuộc vào API nào đang được sử dụng. Cần cẩn thận để đảm bảo rằng không có uber-jars nào được đưa vào thông qua phụ thuộc bắc cầu, vì điều đó có thể gây ra xung đột phiên bản
  • Java 8 hiện là phiên bản được hỗ trợ tối thiểu. Các ứng dụng sử dụng các phiên bản Java cũ hơn phải duy trì trên phiên bản 3. phát hành trình điều khiển x
  • Một số lỗi tương thích nhị phân đã được giới thiệu (cụ thể là thay đổi chữ ký của các phương thức trợ giúp chèn), do đó, bất kỳ lớp nào liên kết với trình điều khiển phải được biên dịch lại để hoạt động với bản phát hành này

Nâng cấp từ 1. Trình điều khiển 12 luồng phản ứng

Thay đổi chính đối với MongoDB Reactive Streams Java Driver 1. Trình điều khiển 12 là loại bỏ loại com.mongodb.client.ClientSession07

Thay đổi đột phá như sau

  • com.mongodb.client.ClientSession08 đã được chuyển sang com.mongodb.client.ClientSession09. Xin lưu ý rằng com.mongodb.client.ClientSession10 sẽ không chỉ được gọi là com.mongodb.client.ClientSession11 nếu thao tác thành công hoặc com.mongodb.client.ClientSession12 nếu có lỗi
  • Loại bỏ các phương pháp không dùng nữa

Nâng cấp từ 2. 8 trình điều khiển Scala

Vì gói mongodb-driver-async không được dùng nữa trong 3. x. 4. 0 của MongoDB Scala Driver hiện được xây dựng dựa trên mongo-java-driver-reactivestreams 4. 0 trình điều khiển. Một lợi ích chính hiện nay là trình điều khiển Scala cũng là trình điều khiển luồng phản ứng

Thay đổi đột phá như sau

  • com.mongodb.client.ClientSession13 hiện là một luồng phản ứng com.mongodb.client.ClientSession14 triển khai com.mongodb.client.ClientSession13 hàm ý mở rộng bất kỳ triển khai com.mongodb.client.ClientSession14 nào và có thể được nhập từ com.mongodb.client.ClientSession17
  • Loại đã hoàn thành hiện đã bị xóa. com.mongodb.client.ClientSession18 đã được chuyển sang com.mongodb.client.ClientSession19. Xin lưu ý rằng com.mongodb.client.ClientSession10 sẽ không chỉ được gọi là com.mongodb.client.ClientSession11 nếu thao tác thành công hoặc com.mongodb.client.ClientSession12 nếu có lỗi
  • Loại bỏ các phương pháp không dùng nữa
yêu cầu hệ thống

JVM tối thiểu là Java 8

khả năng tương thích

Bảng sau chỉ định khả năng tương thích của trình điều khiển Java MongoDB để sử dụng với một phiên bản cụ thể của MongoDB

Làm cách nào để thay đổi phiên bản MongoDB?

Nâng cấp cơ sở dữ liệu MongoDB của bạn lên 3. 6 trở lên hoặc di chuyển cơ sở dữ liệu của bạn sang MongoDB Atlas. .
Quản lý triển khai >
Phiên bản MongoDB >
Thay đổi phiên bản MongoDB

Đồng bộ hóa trình điều khiển MongoDB là gì?

Tạo tác mongodb-driver-sync là gói OSGi hợp lệ có tên tượng trưng là org. mongodb. đồng bộ hóa trình điều khiển .

Mongoclient có bị phản đối không?

Được thay thế bởi MongoClient. Mọi phương thức không được dùng nữa sẽ được chuyển sang MongoClient. Phần còn lại sẽ bị xóa cùng với lớp này. . nội dung