我想为DynamoDb集合创建一个函数Where,就像LINQ Where一样。我想用QueryRequest或ScanRequest来完成。有没有关于怎么做的信息?
nimxete21#
这并不是DynamoDB真正的“方式”。当你写数据时,你需要考虑访问模式。你需要读的主要东西是二级索引(start here)。如果你想要一个关系数据库,你可以用DynamoDB来实现,但是你必须为它工作。你可以得到难以置信的扩展,但是你必须事先做一些仔细的思考。这里有一个good article on relational design。
lkaoscv72#
如果您想在DynamoDB中使用WHERE或类似SQL的表达式,那么您可以使用PartiQL,它是DynamoDB低级API周围的SQL Package 器。ExecuteStatement是您进行的API调用,如下所示:
WHERE
ExecuteStatement
// Import required AWS SDK clients and commands for Node.js. import { ExecuteStatementCommand } from "@aws-sdk/client-dynamodb"; import { ddbDocClient } from "../libs/ddbDocClient"; const tableName = process.argv[2]; export const run = async (tableName) => { const params = { Statement: "SELECT * FROM " + tableName + " where title ='Top Gun'" }; try { const data = await ddbDocClient.send(new ExecuteStatementCommand(params)); console.log(data); return "Run successfully"; // For unit tests. } catch (err) { console.error(err); } }; run(tableName);
2条答案
按热度按时间nimxete21#
这并不是DynamoDB真正的“方式”。当你写数据时,你需要考虑访问模式。你需要读的主要东西是二级索引(start here)。
如果你想要一个关系数据库,你可以用DynamoDB来实现,但是你必须为它工作。你可以得到难以置信的扩展,但是你必须事先做一些仔细的思考。这里有一个good article on relational design。
lkaoscv72#
如果您想在DynamoDB中使用
WHERE
或类似SQL的表达式,那么您可以使用PartiQL,它是DynamoDB低级API周围的SQL Package 器。ExecuteStatement
是您进行的API调用,如下所示: