Tag: amazon dynamodb

使用KeyConditionExpression进行dynamodb查询的问题

尝试按照使用nodejs sdk的dynamodb api 文档来使用KeyConditionExpression。 KeyConditionExpression不受Nodejs SDK的支持。 这是我做的 用哈希和范围创build一个表。 Table : TABLE1 Hash Attribute Name : Provider ( String) Range Attribute Key : ScheduledEndTime ( Number ) // In Milli Seconds 这里是有效载荷来触发发电机数据库查询: { TableName: 'TABLE1', ConsistentRead: true, Select: "ALL_ATTRIBUTES", KeyConditionExpression: 'Provider = :v_provider AND ScheduledEndTime > :v_scheduledEndTime', ExpressionAttributeValues: { ":v_provider": { S: "amazon" }, ":v_scheduledEndTime": { […]

无法更新DynamoDB中的项目

我一直在试图找出如何更新dynamoDB中的项目,但没有任何成功。 我知道如何添加和项目和删除项目,但不更新。 这是我的代码: dynamoDB.updateItem({ "TableName": "mytable", "Key": { "thing_ID": {"S": "0000"} }, "UpdateExpression": "SET", "ExpressionAttributeNames": { "SessionID": "" }, "ExpressionAttributeValues": { "SessionID": { "S": "maybe this works", } } })

如何在DynamoDB中查询不存在的(空)属性

我试图查询DynamoDB表来查找未设置email属性的所有项目。 包含email字段的表上存在名为EmailPasswordIndex全局二级索引。 var params = { "TableName": "Accounts", "IndexName": "EmailPasswordIndex", "KeyConditionExpression": "email = NULL", }; dynamodb.query(params, function(err, data) { if (err) console.log(JSON.stringify(err, null, 2)); else console.log(JSON.stringify(data, null, 2)); }); 结果: { "message": "Invalid KeyConditionExpression: Attribute name is a reserved keyword; reserved keyword: NULL", "code": "ValidationException", "time": "2015-12-18T05:33:00.356Z", "statusCode": 400, "retryable": false } 表格定义: var params […]

DynamoDB putitem在NodeJs中 – 对象数组

我正在尝试从AWS Lambda设置一个小的API到DynamoDB,我很难弄清楚是否以及如何将一个对象数组写入到一个键中。 我有一个像 { "teamName": "Team Awesome", "members": [ { "email": "person-1@example.com", "name": "Bob" }, { "email": "person-2@example.com", "name": "Alice" } ] } 成员数组给我提供了一些问题,在文档中看起来可以考虑使用列表types,但是没有例子说明如何去做,而我正在用尽方法去尝试它。 那么是否有可能用这种格式写一些东西呢?在这种情况下你怎么做呢? 示例代码 – 我该怎么摆? var AWS = require('aws-sdk'); var dynamodb = new AWS.DynamoDB(); exports.handler = function(event, context) { var tableName = "GDCCompetition"; var datetime = new Date().getTime().toString(); DynamoDB.putItem({ "TableName": tableName, "Item": […]

如何从DynamoDB列表中删除地图列表中的Map属性值?

我有以下列表示例: { "favorites": [ { "createdAt": 1448998673852, "entityId": "558da3de395b1aee2d6b7d2b", "type": "media" }, { "createdAt": 1448998789252, "entityId": "558da3de395b1aee2d6b7d83", "type": "media" }, { "createdAt": 1448998793729, "entityId": "558da3de395b1aee2d6b7d99", "type": "media" }, { "createdAt": 1448998813023, "entityId": "558da3de395b1aee2d6b7daf", "type": "media" } ], "userId": "2" } 我想删除地图: "entityId": "558da3de395b1aee2d6b7d2b" 。 我在想一个UpdateItem查询,我看过REMOVEexpression式文档( http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html ),但我似乎无法看到任何示例,除了通过索引值从列表中删除项目….

在dynamodb Local查询全球二级指数

我正在使用这些参数在发电机中创build一个表格和GSI,如下所示: configId是表的主键,我使用publisherId作为GSI的主键(为了简洁,我删除了一些不必要的configuration参数) var params = { TableName: 'Configs', KeySchema: [ { AttributeName: 'configId', KeyType: 'HASH', } ], AttributeDefinitions: [ { AttributeName: 'configId', AttributeType: 'S', }, { AttributeName: 'publisherId', AttributeType: 'S', } ], GlobalSecondaryIndexes: [ { IndexName: 'publisher_index', KeySchema: [ { AttributeName: 'publisherId', KeyType: 'HASH', } ] } ] }; 我使用这个查询这个表: { TableName: 'Configs', IndexName: 'publisher_index', […]

在布尔键上的DynamoDB查询

我是DynamoDB的新手(对于一般的noSQL),并且为了让我的头脑围绕一些概念而挣扎。 有一件事情特别是给我一些问题,这是围绕一个布尔键查询表的问题。 我意识到我不能创build一个布尔键的主要或次要索引,但我不明白我应该如何理想地索引和查询具有以下结构的表; reportId: string (uuid) reportText: string isActive: boolean category: string 我希望能够完成以下search: 直接访问特定报告( reportId的主散列索引) 列出特定类别的报告(类别上的主要哈希索引) 这些都是直截了当的,但我想要执行另外两个查询; 列出所有标记为isActive = true的报告 列出标记为isActive = true的特定类别的所有报告 我的第一种方法是在isActive上创build一个主要的hashkey索引,并使用category ,但是我只能selectString , Number of Boolean作为键types。 存储isActive作为一个string(保存为“真”而不是布尔真)解决了这个问题,但它使用一个string可怕的布尔属性。 我错过了什么吗? 有一个简单的方法直接查询表的布尔值? 任何build议非常感激。 提前致谢。

将项目放在使用适用于Node.js的AWS开发工具包的DynamoDB表上

我不熟悉javascript和node.js,想知道是否有人可以帮助我找出通过node.js SDK将新项目放到AWS Dynamodb上现有表的语法。 这是我迄今为止。 有什么我想要做的例子吗? 如果有人能指出我的方向正确的话,我会非常感激。 var AWS = require('aws-sdk'); AWS.config.loadFromPath('./config.json'); AWS.config.update({region: 'us-east-1'}); var dynamodb = new AWS.DynamoDB(); var item = { // I need to put the an item with a the primary key of "id", and an attribute called "item" // I'm new to js and node.js, so if somebody could help me […]

用Lambda查询DynamoDB什么也不做

我有一个Lambda函数的以下代码: console.log('Loading function'); var aws = require('aws-sdk'); var ddb = new aws.DynamoDB(); function getUser(userid) { var q = ddb.getItem({ TableName: "Users", Key: { userID: { S: userid } } }, function(err, data) { if (err) { console.log(err); return err; } else { console.log(data); } }); console.log(q); } exports.handler = function(event, context) { console.log('Received event'); getUser('user1'); […]

使用Amazon KMSencryption值,使用带有Lambda的DynamoDB存储/检索(NodeJS)

我有一个将数据写入DynamoDB的Lambda(NodeJS)函数。 有些数据需要encryption。 我使用KMSencryption和存储进行encryption。 当我使用不同的Lambda函数从Dynamo中检索并尝试解密时,出现错误。 如果我encryption,然后解开一个解密,我能够做到这一点,但如果我从数据库中读取encryption的值,它不会解密。 我的encryption/存储代码如下: console.log('Loading event'); var AWS = require('aws-sdk'); var keyId = "arn:aws:kms:us-east-1:5423542542:key/xxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxx"; var tableName = "person"; var dynamoDBConfiguration = { "region": "us-west-2" }; AWS.config.update(dynamoDBConfiguration); var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'}); var kms = new AWS.KMS({region: 'us-east-1'}); var newId = "1234-56789-101112-13141516"; var item = {}; exports.handler = function (event, context) { console.log('ssn'); […]