我已经尝试从DynamoDB查询数据两天了。让我发疯。
我在办公室里有一张桌子。假设有两个办公室,科克和都柏林。我有一个名为“deskName”的列,它的名称有“cork1”、“cork2”、“dub1”、“dub2”。我希望能够查询表中包含“cork”或“dub”的项目,因为它们在同一个表中,但我不想扫描整个表。
代码:
const params = {
TableName: process.env.DYNAMODB_DESKS_TABLE,
//KeyConditionExpression: '#deskName = :deskName',
KeyConditionExpression: "begins_with(#deskName, :deskName)",
ExpressionAttributeNames: {
"#deskName": "deskName"
},
ExpressionAttributeValues: {
":deskName": "cork"
}
}
dynamodb.query(params, (error, result) => {
if (error) {
console.error(error);
callback(null, {
statusCode: error.statusCode || 501,
headers: {'Content-Type': 'text/plain'},
body: 'Couldn\'t get desks'
});
return;
}
const response = {
statusCode: 200,
body: JSON.stringify(result.Item)
};
callback(null, response);
});
YAML:
HotDeskDesksDBTable:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Retain
Properties:
AttributeDefinitions:
-
AttributeName: deskName
AttributeType: S
KeySchema:
-
AttributeName: deskName
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:provider.environment.DYNAMODB_DESKS_TABLE}
错误:
ValidationException: Query key condition not supported
当我出现“软木塞-1”的情况时,我设法把一件物品拿了回来。我想买每一件以“软木塞”开头的东西。
谢谢你
以下是我能收集到的信息:
常量参数={
TableName: process.env.DYNAMODB_DESKS_TABLE,
IndexName: 'deskName',
ExpressionAttributeValues: {
":deskName": { "S": "cork" }
}
你得到了这个。。。
Syntax error in module 'api/desks/get': SyntaxError
KeyConditionExpression: "#deskName = :deskName",
^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
因为这个。。。
const params = {
TableName: process.env.DYNAMODB_DESKS_TABLE,
IndexName: 'deskName'
KeyConditionExpression: "#deskName = :deskName",
ExpressionAttributeNames:{
"#deskName": "deskName"
},
ExpressionAttributeValues: {
":deskName": "cork"
}
}
JavaScript对象在每个属性后都需要一个逗号。IndexName:'deskName'
之后缺少一个。
我建议使用DocumentClient,因为它可以轻松地将Javascript数据类型映射到DynamoDB数据类型。
如何使用节点扫描AWS dynamodb中的所有项目。js。我在这里张贴我的代码。 我已经跟踪了链接https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.04.html 过了一会儿我就有时间离开这里了。我也检查了这个链接,如何使用节点从“AWS dynamodb”获取/扫描所有项
假设我有一个DynamoDB表,比如 每个项目都有一个名称,属于一个客户,所以我也有一个索引 假设我有以下数据: 现在,我想查询特定客户的所有项目,并过滤部分名称的结果(本质上是一个搜索操作)。例如,给我所有属于客户42且名称中包含“果汁”的项目(橙汁和苹果汁是预期结果)。 如果我查询,我将得到一个错误,说不支持。我可以理解这个限制,因为意味着必须扫描所有项目(在给定的散列键内),但是,你可以用查
我正在尝试使用查询检索dynamodb表中的所有项。下面是我的代码: 但是,我收到以下错误: 我的代码非常简单,出自boto dynamodb2文档,因此我不确定为什么会出现上述错误。任何见解都将受到赞赏(这是新的,有点迷失)。谢谢 编辑:我有一个散列键和一个范围键。我能够通过特定的哈希键进行查询。例如 但我如何检索所有项目?
我有一个表列,其波浪线值如下所示 我想查询月份“vendorAndPurchaseDate,如“%~08 20'”,以及2020年底的“vendorAndPurchaseDate,如'20'”。我使用Spring数据JPA来查询这些值。我以前从未使用过tilde值的列。请给我指出一个正确的方向或一些例子
本文向大家介绍MongoDB查询以获取特定数量的项目,包括了MongoDB查询以获取特定数量的项目的使用技巧和注意事项,需要的朋友参考一下 要获取特定数量的项目,请在MongoDB中使用$slice运算符。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是仅获取2个项目的查询- 这将产生以下输出-
本文向大家介绍sharepoint 通过CAML查询获取列表项,包括了sharepoint 通过CAML查询获取列表项的使用技巧和注意事项,需要的朋友参考一下 示例 基本范例 使用对象的set_viewXml方法SP.CamlQuery指定CAML查询以检索项目。 分页CAML查询的结果 您可以利用RowLimitCAML查询中的元素在每个查询中仅检索结果的子集。 使用get_listItemCo