MongoDB không hỗ trợ sắp xếp phía máy chủ với distinct
yêu cầu. Điều đang xảy ra trong bảng điều khiển là distinct('myKey')
lệnh gọi trả về một mảng và sau đó bạn đang gọi JavaScript sort
trên mảng đó trả về một phiên bản được sắp xếp của mảng. Các tham số bạn chuyển vào sort
bị bỏ qua.
Để làm điều tương tự trong Java, bạn sẽ làm:
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
Để nhận các khóa duy nhất bằng cách sử dụng sắp xếp phía máy chủ, bạn có thể sử dụng aggregate
. Đây là cách bạn làm điều đó trong shell:
db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
Tuy nhiên, khi tôi thử nghiệm điều này, phương pháp sắp xếp phía máy khách đơn giản hoạt động tốt hơn nhiều.