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?
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.ClientSession
0 khác nhau trêncom.mongodb.client.ClientSession
1,com.mongodb.client.ClientSession
2 vàcom.mongodb.client.ClientSession
3 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.ClientSession
4 đã thay đổi từcom.mongodb.client.ClientSession
5 thànhcom.mongodb.client.ClientSession
6. 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ínhcom.mongodb.client.ClientSession
7 củacom.mongodb.client.ClientSession
8 [hoặccom.mongodb.client.ClientSession
00 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.ClientSession
01 - Trình điều khiển không còn đăng nhập qua JUL [
com.mongodb.client.ClientSession
02]. 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.ClientSession
03 vàcom.mongodb.client.ClientSession
04 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 sangcom.mongodb.client.ClientSession
05 hoặccom.mongodb.client.ClientSession
06, 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.ClientSession
07
Thay đổi đột phá như sau
com.mongodb.client.ClientSession
08 đã được chuyển sangcom.mongodb.client.ClientSession
09. Xin lưu ý rằngcom.mongodb.client.ClientSession
10 sẽ không chỉ được gọi làcom.mongodb.client.ClientSession
11 nếu thao tác thành công hoặccom.mongodb.client.ClientSession
12 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.ClientSession
13 hiện là một luồng phản ứngcom.mongodb.client.ClientSession
14 triển khaicom.mongodb.client.ClientSession
13 hàm ý mở rộng bất kỳ triển khaicom.mongodb.client.ClientSession
14 nào và có thể được nhập từcom.mongodb.client.ClientSession
17- Loại đã hoàn thành hiện đã bị xóa.
com.mongodb.client.ClientSession
18 đã được chuyển sangcom.mongodb.client.ClientSession
19. Xin lưu ý rằngcom.mongodb.client.ClientSession
10 sẽ không chỉ được gọi làcom.mongodb.client.ClientSession
11 nếu thao tác thành công hoặccom.mongodb.client.ClientSession
12 nếu có lỗi - Loại bỏ các phương pháp không dùng nữa
JVM tối thiểu là Java 8
khả năng tương thíchBả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