我在npmjs.org上看到了很多DynamoDB模块。我猜他们所有人都在引入二级索引之前,因此不支持它们。有没有人知道支持二级索引的Node.js的高级DynamoDB模块?
答案 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次搜索中没有找到它...