无法为DynamoDB查询创建“SS”AttributeValue

时间:2016-12-09 15:24:09

标签: node.js amazon-web-services amazon-dynamodb

我正在尝试使用“dynamodb-doc”在AWS DynamoDB中执行查询。我的NodeJS代码如下所示:

const AWS = require('aws-sdk');
const DOC = require('dynamodb-doc');
const dynamodb = new AWS.DynamoDB({});
const docMyTable = DOC.DynamoDB(dynamodb);

var CodeSet = ['code01', 'code02', 'code03'];
var queryParams = {TableName: 'my-table'}
queryParams.KeyConditions = [docMyTable.Condition("code", "IN", CodeSet)];
docMyTable.query(queryParams, (err, data) => {
  if(err) throw err;
  console.log(data);
});

可以找到条件的AWS文档here。它指定对于ComparisonOperator“IN”,支持“数组字符串”但我收到以下错误:

  

ComparisonOperator IN对L AttributeValue类型

无效

我的代码中遗漏了什么?

1 个答案:

答案 0 :(得分:1)

您可以使用docClient.Set方法创建SET。只要在DyanmoDB表中将code定义为SET,下面的解决方案就可以解决问题。

var DOC = require("dynamodb-doc");
var docClient = new DOC.DynamoDB();
docClient.Set(["a", "b", "c"], "S")
  

IN:检查两组中的匹配元素。