我正在尝试使用此域中的以下查询从发电机数据库中获取详细信息,而服务只是键(非主键)
let params = {
TableName: asset_table,
ConsistentRead: true,
ProjectionExpression: 'ID,SERVICE',
KeyConditionExpression: "DOMAIN = :service_name AND SERVICE EQ :service_domain",
ExpressionAttributeValues: {
":service_name": {"S":service },
":service_domain": {"S":domain}
}
};
docClient.scan(params, (err, data) => {
if (err) {
onComplete(err);
} else {
console.log(data);
onComplete(null, {
data
});
}
});
这给出了如下所示的错误
{
"message": "ExpressionAttributeValues can only be specified when using expressions: FilterExpression is null",
"code": "ValidationException",
"time": "2019-01-09T09:47:09.180Z",
"requestId": "0G3C02E6251S2H1IQ2LQUTN04JVV4KQNSO5AEMVJF66Q9ASUAAJG",
"statusCode": 400,
"retryable": false,
"retryDelay": 8.070453867451622
}
这对我有用:
const paramsVehicles = {
TableName: "vehicles",
FilterExpression: "#manufacturer = :manufacturer and #modelName = :modelName",
ExpressionAttributeNames: {
"#manufacturer": "manufacturer",
"#modelName": "modelName",
},
ExpressionAttributeValues: {
":manufacturer": "SEAT",
":modelName": "Ateca",
}
};
我使用了不同的表格和模型,但该方法是通用的,可以在所要求的示例中使用。