2016-11-19 3 views
0

を使用してExpressionFilterと属性値:は、私は私のDynamoDBのテーブルに、以下のアイテムを持っているのJavascript

{ 
    "quid" : { 
    "S":"87CEE4F1-5458-4A65-A3F5-1837A353B14D" 
    }, 
    "objectType" : { 
    "S":"event" 
    }, 
    "document" : { 
    "M" : { 
     "externalID" : { 
     "S" : "12-34-567890" 
     }, 
     "eventFormat" : { 
     "N" : "0" 
     } 
    } 
    } 
} 

私は、次のJavaScriptコード

var AWS = require('aws-sdk'); 

AWS.config.update({ 
    region: "us-west-2" 
}); 
AWS.config.loadFromPath('./config.json'); 

var docClient = new AWS.DynamoDB.DocumentClient(); 

var params = { 
    TableName : "events", 
    FilterExpression : "document.eventFormat = :nForm", 
    ExpressionAttributeValues : {":nForm":{"N":"0"}} 
} 

docClient.scan(params, function(err, data){ 
    if (err) console.log(err); 
    else console.log(data); 
})  
でその項目にアクセスしようとしています

FilterExpressionとExpressionAttributesValuesを削除すると、テーブルのフルスキャンが正常に実行され、その中に含まれるすべてのアイテムが表示されます。 FilterExpressionとExpressionAttributesValuesを追加すると、結果が返されません。

externalIDまたはeventFormatでスキャンをフィルタリングする方法を理解する助けがあれば、非常に感謝しています!

答えて

1

paramsとお試しください。スカラー数値の場合はExpressionAttributeValuesにデータ型は必要ありません。これは私の期待通りに機能しました。

var params = { 
     TableName: "events",  
     FilterExpression: "document.eventFormat = :nForm", 
     ExpressionAttributeValues: { 
      ":nForm": 0 
     } 
    }; 
+0

ありがとうございますnotionquest!これはまさに私が必要としていたものでした!とても感謝しています! –

関連する問題