2014-09-01 25 views
5

Say, trong AWS Dynamo, tôi có một bảng như thế này:Làm cách nào để nhận được các giá trị duy nhất của cột trong AWS Dynamo?

ID (HKey) Date (RKey) BoxName 
0   1/1/2014  Box-1 
1   2/1/2014  Box-1 
2   3/1/2014  Box-2 
3   4/1/2014  Box-3 
4   5/1/2014  Box-3 
5   5/1/2014  Box-1 

tôi muốn, trong một truy vấn duy nhất, lấy hàng đầu tiên cho mỗi Box độc đáo. Có thể có hàng trăm hộp tôi cần mục nhập đầu tiên cùng một lúc, làm cho các yêu cầu riêng lẻ không hiệu quả.

Tôi dường như không thể tìm thấy bất kỳ thứ gì trong API cho phép tôi thực hiện việc này. Có thể không? Làm thế nào tôi sẽ làm điều này?

Trả lời

2

Bạn có thể muốn xem xét việc tạo chỉ mục phụ toàn cầu (GSI) trên Boxname (khóa băm) và ngày làm khóa phạm vi của bạn. Điều này sẽ cho phép bạn sử dụng API truy vấn trên chỉ mục phụ nơi bạn có thể truy vấn "Tìm tất cả ID với Boxname = $ box".

Xem documentation for GSI.

Hy vọng điều này sẽ giúp, Swami

+1

Không hoàn toàn là những gì tôi theo sau. Tôi đã chỉnh sửa câu hỏi để phản ánh rằng tôi muốn đầu tiên của mỗi hộp trong một truy vấn. – AlbeyAmakiir

+0

GSI là những gì bạn muốn. Như đã đề cập trong câu trả lời ở trên, bạn có thể thực hiện một "truy vấn" trên GSI với tên hộp là khóa băm. Vì GSI sẽ sắp xếp hộp cùng tên với Date, bạn có thể đặt giới hạn truy vấn của mình thành 1 để nhận được hộp cũ nhất. Điều duy nhất là bạn có thể muốn tạo một bảng riêng biệt chứa tất cả các tên hộp. –

+2

Tôi có một yêu cầu tương tự và tôi không tin rằng bạn trả lời câu hỏi. Vấn đề là làm thế nào để có được danh sách các tên hộp duy nhất? Sử dụng GSI với tên hộp là hashkey, bạn chỉ có thể truy vấn nếu bạn biết tên hộp. Người này muốn tìm tất cả các tên hộp khi họ không biết họ. –

Các vấn đề liên quan