Ami*_*Gur 3 amazon-web-services node.js amazon-dynamodb
我的表项目的形式
function addDoc(movie,cb){
var params = {
TableName: "Movies",
Item: {
"year": movie.year,
"title": movie.title,
"info": movie.info,
"genres" : movie.info.genres || []
}
};
docClient.put(params, function(err, data) {
bar.tick(1)
i++;
cb(err);
});
}
async.eachLimit(allMovies,50,addDoc,function (err) {
console.log(err)
console.log("done inserting " + i + " movies");
});
Run Code Online (Sandbox Code Playgroud)
我正在运行此代码:
var params = {
TableName : "Movies",
//ProjectionExpression:"#yr, title, genres, info.actors[0]",
KeyConditionExpression: "#yr = :yyyy and contains(genres, :g1)",
ExpressionAttributeNames:{
"#yr": "year"
},
ExpressionAttributeValues: {
":yyyy":1992,
":g1" : "Drama"
},
//Select : "COUNT"
};
var start = Date.now()
docClient.query(params, function(err, data) {
if (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
} else {
console.log("time elapsed :",Date.now()-start);
console.log("Query succeeded.");
console.log(data)
}
});
Run Code Online (Sandbox Code Playgroud)
而且我收到了这个错误
"KeyConditionExpression中使用的运算符无效:包含"
任何的想法?
not*_*est 15
这里有一些事情需要澄清.
1)DynamoDB的Key属性必须是标量数据类型.所以,我认为该属性genres不能定义为SET或LIST数据类型
2)KeyConditionExpression- 只能参考哈希和排序键.所以,我假设该属性genres被定义为表的SORT键
3)contains可用于FilterExpression数据类型STRING,SET或LIST.它不能用于KeyConditionExpression
结论 - 参考第3点直接回答
| 归档时间: |
|
| 查看次数: |
4888 次 |
| 最近记录: |