亚马逊的DynamoDB有一个很好的查询构建器吗?

时间:2017-10-20 14:47:36

标签: node.js amazon-dynamodb

我追踪this package。一般来说它非常好。但它似乎缺乏对Projection Expressions的支持。您在node / typescript中选择dynamodb的工具是什么?

我不喜欢列出here的数据映射器,因为它们倾向于包装表数据,或者被放弃作为项目。

3 个答案:

答案 0 :(得分:2)

如果可以使用打字稿,则使用https://github.com/shiftcode/dynamo-easy。它也不支持Projection Expression,但是底层的参数始终可以是accessed and manipulated,因此添加一些不受支持的功能很容易。

import { DynamoStore } from '@shiftcoders/dynamo-easy'

const queryRequest = new DynamoStore(PersonModel)
    .query()
    .wherePartitionKey('2018-01')
    .whereSortKey().beginsWith('a')
    .limit(1)

    const queryParams = queryRequest.params
    queryParams.ProjectionExpression = 'projectionExpression'
    // also add expression attribute names if required
    queryParams.ExpressionAttributeNames = {'#someExpressionAttributeName': 'someExpressionAttributeName'}

    // you can also use new DynamoDB().query(queryParams), but we just use the preconfigured wrapped client  
    queryRequest.dynamoDBWrapper.makeRequest('query', queryParams)
        .then(r => console.log('first found item with projection expression:', r))

全面披露:我是该图书馆的作者之一

答案 1 :(得分:1)

我们使用dynogels,它一直保持到目前为止。

https://github.com/clarkie/dynogels

答案 2 :(得分:0)

如果您需要使用GUI来构建查询,请尝试使用我构建的“ DynamoDB Visual Query Builder”:https://dynobase.dev/dynamodb-query-builder/