是否有支持二级索引的Node.js高级DynamoDB模块?

时间:2013-05-24 20:47:50

标签: node.js amazon-web-services amazon-dynamodb

我在npmjs.org上看到了很多DynamoDB模块。我猜他们所有人都在引入二级索引之前,因此不支持它们。有没有人知道支持二级索引的Node.js的高级DynamoDB模块?

4 个答案:

答案 0 :(得分:1)

我编写的其中一个模块dynamo-table支持二级索引。

您可以在表构造函数中指定它们,然后库可以确定查询中是否需要索引:

table = dynamoTable('customers', {
  key: ['id', 'name'],
  indexes: {emailIx: 'email'}
})

table.query({id: 'a', email: {'>': 'b'}}, function(err, items) {
  // query will have been called with IndexName: emailIx
})

createTable调用还将创建具有给定二级索引的表 - 您还可以指定投影和类型。

table = dynamoTable('customers', {
  key: ['id', 'name'],
  keyTypes: {age: 'N'},
  indexes: {ageIx: {key: 'age', projection: ['address', 'dob']}}
})

table.createTable(function(err) {
  // will correctly populate LocalSecondaryIndexes and AttributeDefinitions
})

目前,文档在当地有点亮(典型!),但您应该能够从the tests了解更多信息。

答案 1 :(得分:1)

AWS SDK for Node.js支持Amazon DynamoDB的二级索引。您可以在github上找到它的代码,或者您可以通过npm:

获取代码
npm install aws-sdk

答案 2 :(得分:1)

如果您喜欢类似MongoDB的界面,可以使用: https://github.com/aaaristo/dyngodb

npm install -g dyngodb

答案 3 :(得分:1)

我最近开始使用vogels。它很棒 - 似乎维护得很好,并且具有类似猫鼬的语法。它支持二级索引和并行扫描,其中很少(没有?)其他dynamo sdk。我不知道为什么我在为发电机+节点库做的前100次搜索中没有找到它...