0

私は多くのことを研究してきましたが、正しい答え/例を見つけることができませんでした.

dynamodb には、ハッシュ キー「user_id」と範囲キー「playlist_id」を持つテーブル「user_playlists」があります (1 人のユーザーが N 個のプレイリストを持つことができます)。

プレイリストごとに、プレイリストが作成されたときの情報を「created_ts」属性に保存します(作成時のタイムスタンプを保存します)。「created_ts」はインデックスとして定義されています。

ここで、「user_playlists」テーブルにクエリを実行して、特定のユーザーのすべてのプレイリストを取得します。クエリはハッシュと範囲キーで行われます。

結果はハッシュである範囲キー「playlist_id」によって並べ替えられるため、その属性による並べ替えは私には何の意味もありません。したがって、結果を属性 'created_ts' で並べ替えたいと思います。

Query メソッドを使用してそのインデックス付き属性でソートすることは可能ですか? ハッシュと範囲キーによってデータを取得する既存のロジックは維持する必要があります。作成時間までに注文したアイテムを取得するために必要なものだけを追加したい。

4

2 に答える 2

0

いいえ、Amazon ( https://forums.aws.amazon.com/thread.jspa?messageID=328982# )に従ってスキャンでソートすることはできません。さらに、質問で述べたように、どのフィールドでもクエリでソートすることはできません。

とにかく、結果をローカルで並べ替えることができます。私は、アンダースコア ライブラリに含まれている sortBy を使用してそれを行っています。それは最善の解決策ではありませんが、機能します

于 2013-09-05T09:53:15.813 に答える