テーブル Tinpon をセカンダリインデックスでクエリして、パーティションキー category とソートキー tinponIdを生成します。私の目標は、特定のtinponIdを持つアイテムを除外することです。私の最初の考えは否定的な比較をすることでしょう:keyConditionExpression = "category = :category AND tinponId != :tinponId"
ですが、等しい = 比較しかありません。次に、サーバルの他の方法を試しました(残念ながら存在しません):keyConditionExpression = "category = :category NOT tinponId = :tinponId" keyConditionExpression = "category = :category AND tinponId <> :tinponId" keyConditionExpression = "category = :category AND tinponId < :tinponId AND tinponId > :tinponId"
以下 AWSガイド等しくない比較はありません。なんでそうなの?そして、IDのリストを除いてDynamoDBをクエリする方法はありますか、または一連のアイテム全体を取得して後で手動でフィルタリングする唯一のオプションはありますか?
KeyConditionExpression
では、並べ替えキーにnot equalsを使用できません。ただし、FilterExpression
で"Not Equalsつまり<>"を使用できます。
KeyConditionExpression : 'category = :category',
FilterExpression : 'tinponId <> :tinponIdVal',
ExpressionAttributeValues : {
':category' : 'somevalue',
':tinponIdVal' : 'somevalue'
}