Ví dụ, có một bộ sưu tập như thế này:
Làm cách nào để thực hiện hiệu quả "riêng biệt" với nhiều phím?
{thị trường: 'SH', mã: '000001', ngày: '2012/01/01', giá: 1000}
{thị trường : 'SZ', mã: '000001', ngày: '2012-01-01', giá: 1000}
{thị trường: 'SH', mã: '000001', ngày: '2012-01-02', giá: 1000}
{market: 'SZ', mã: '000001', ngày: '2012-01-02', giá: 1000}
{market: 'SH', mã: '000002', ngày: '2012-01-03', giá: 1000}
...
Bộ sưu tập này chứa hàng chục triệu tài liệu.
Tôi muốn gọi riêng biệt với hai phím:
collection.distinct('market', 'code');
và nhận được kết quả:
[{thị trường: 'SH', mã: '000001'}, {thị trường: 'SZ', mã: '000001'}, { thị trường: 'SH', mã: '000.002'}]
Như lệnh riêng biệt có nguồn gốc chấp nhận chỉ có một chìa khóa, tôi cố gắng thực hiện bằng cách sử dụng map-reduce. Nhưng việc giảm bản đồ quá chậm so với bản địa riêng biệt. Trong thử nghiệm riêng biệt một phím của tôi, giảm chi tiêu bản đồ dài hơn khoảng mười lần so với bản địa riêng biệt.
Có cách nào hiệu quả để thực hiện đa dạng riêng biệt không?