2016-05-19 204 views
5

私は、このように挿入するいくつかの項目があります。DynamoDB:属性を「NULL」に設定するかどうかは、「true」か、または単に省略しますか?

PutItemを:

"TableName": "pets", 
"Item": { 
    "petName": { 
     "S": "Cat" 
    }, 
    "hairColor": { 
     "S": "gray" 
    }, 
    "nickName": { 
     "S": "Kitty" 
    } 
} 

は時々しかし、petsnicknameを持っていません。

"TableName": "pets", 
"Item": { 
    "petName": { 
     "S": "Cat" 
    }, 
    "hairColor": { 
     "S": "gray" 
    } 
} 

)どのような違い

1)

"TableName": "pets", 
"Item": { 
    "petName": { 
     "S": "Cat" 
    }, 
    "hairColor": { 
     "S": "gray" 
    }, 
    "nickName": { 
     "NULL": "true" 
    } 
} 
:私は、DynamoDBのにかなり新たなんだ、と私は、私は二つの方法(少なくとも)でこれを扱うことができることを、見ることができますこれは私のためになりますか?(後でデータにアクセスする場合など)ベストプラクティスは何ですか?

答えて

1

属性をNULLに設定するか、またはそれを省略するとは同じではありません。

属性を設定しないと、明らかに特定の項目には存在しません。しかし、データ型がNULLの場合、ですが、値は含まれていません(JSONのnullに似ています)。

など。比較演算子NULLとの比較を実行するとき、プロパティ "NULL"を持つ属性は実際には偽になります。ここの名前は非常に混乱しますが、その動作はかなりwell documentedです。比較演算子のためNULLそれは言う:属性が存在しないため

この演算子のテストではなく、そのデータ タイプ。属性 "a"のデータ型がNULLで、NULLを使用して と評価すると、結果はブール値falseになります。これは、属性「a」が に存在するためです。そのデータ型はNULL 比較演算子には関係しません。

関連する問題