0

DynamoDBからのクエリ APIの操作。エンティティテーブルには、ハッシュと範囲の主キーがあります。範囲列は文字列型です。範囲キーでBETWEENクエリを実行しているときに、奇妙な結果が得られました。

クエリ より大きい

そして、ドキュメントはあまり明確ではありません:

BETWEEN:最初の値以上、2番目の値以下。BETWEENの場合、AttributeValueListには、同じタイプの2つのAttributeValue要素(文字列または数値(セットではない))が含まれている必要があります。ターゲット属性は、ターゲット値が最初の要素以上で、2番目の要素以下の場合に一致します。アイテムに、リクエストで指定されたものとは異なるタイプのAttributeValueが含まれている場合、値は一致しません。たとえば、{"S":"6"}は{"N":"6"}とは比較されません。また、{"N": "6"}は{"NS":["6"、 "2"、"1"]}とは比較されません。

誰かがこの結果を説明できますか?

4

1 に答える 1

0

の比較でAttributeValueは、値を比較する前に値の型が検証されます。をチェックする.equals(obj)AttributeValue、より良い説明が得られるかもしれません。

于 2012-12-11T21:21:18.857 に答える