我的掃描功能:掃描功能在DynamoDB與保留關鍵字作爲FilterExpression的NodeJS
{ [ValidationException: Invalid FilterExpression: Attribute name is a reserved keyword; reserved keyword: status]
message: 'Invalid FilterExpression: Attribute name is a reserved keyword; reserved keyword: status',
code: 'ValidationException',
time: Mon Apr 18 2016 21:57:30 GMT+0530 (IST),
requestId: 'AV6QFHM7SPQT1QR3D4OO81ED4FVV4KQNSO5AEMVJF66Q9ASUAAJG',
statusCode: 400,
retryable: false,
retryDelay: 0 }
現在我得到我想要使用一個保留關鍵字的一點:
var tableName = 'faasos_orders',
filterExp = 'status = :delivered OR status = :void OR status = :bad',
projectionValues = '',
expressionAttr = {};
expressionAttr[":delivered"] = "delivered";
expressionAttr[":bad"] = "bad";
expressionAttr[":void"] = "void";
limit = 10;
dynamoConnector.getItemUsingScan(tableName, filterExp, projectionValues, expressionAttr, function (err, data) { ...........}
上運行出錯e過濾表達式是非法的。 但是,如果我跑通過AWS相同功能的圖形用戶界面,它返回的數據精美(查看圖像的詳細信息): Scan function on status through gui
所以,問題是我如何通過節點添加過濾器表達式,而無需更改密鑰名稱? ?
謝謝你的努力。有一個類似的錯誤。 :-) – kometen
耶。 Amazons文檔非常棒,你知道。 雖然發現這是他們的主要指南DynamoDB: [開發指南最新的亞馬遜dynamodb](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)@kometen –