使用Node.js在DynamoDB中查询多对多

时间:2018-06-05 16:13:40

标签: amazon-web-services amazon-dynamodb dynamodb-queries

我正在阅读本文中有关如何在DynamoDB中建立多对多关系的建模:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html

enter image description here

让我们说要求是显示给定发票的所有票据清单。但是您需要显示每个帐单的所有属性(图像中的红色圆圈)。

我可以查询Invoice-92551的所有账单如下:

    var params = {
       TableName: "some-table",
       KeyConditionExpression: "#pk = :pk",
       ExpressionAttributeNames: {
          "#pk":"pk",
       },
       ExpressionAttributeValues: {
          ":pk": "Invoice-92551"
       },
       ProjectionExpression: "pk, sk, isPaid, Amount, created...etc"
    }; 

docClient.query(params, function(error, billsForGivenInvoice) {...});

好的,我现在有账单,但我需要更多属性。我可以做到以下几点:

            var params = {
                RequestItems: {
                    "some-table": {
                        Keys: ["Bill-4224663", "Bill-4224687"],
                        ProjectionExpression: "...other attributes needed..."
                    }
                }
            };

            docClient.batchGet(params, function(error, bills) {});

是否可以一次查询两个结果?而不是先调用query(),然后调用batchGet()。

0 个答案:

没有答案