AWS DynamoDB查询不对BOOL值进行筛选
我有一个用GUI创build的用户表,给出了电子邮件的分区键,它是一个string。 然后我用aws lambda来做一个putItem,它有:
email (string) test@testing.com deleted (BOOL) false
这工作得很好。 然后我试图用lambda查询它使用以下参数和查询:
var params = { TableName : 'Users', KeyConditionExpression : 'email = :email', FilterExpression : 'deleted = :deleted', ExpressionAttributeValues : { ':email' : email, ':deleted': { BOOL: false } } }; docClient.query(params, function(err, data) { if (err) return fn(err); else { console.log("GetItem succeeded:", JSON.stringify(data, null, 2)); } });
当我searchemail = test@testing.com并将其删除为false时,总是返回0个项目。 如果我删除删除的filterexpression式,我得到一个项目返回所以为什么不BOOL =假的工作,或者我应该使用别的东西?
以下是过滤BOOL
数据的代码。 DynamoDB将其解释为MAP数据types内的BOOL值,因此不需要如下所示进行编码。
{ BOOL: false }
改成:-
':deleted' : false
码:-
var table = "users"; var params = { TableName : table, KeyConditionExpression : 'email = :email', FilterExpression: 'deleted = :deleted', ExpressionAttributeValues : { ':email' : 'abc@gmail.com', ':deleted' : false } }; docClient.query(params, function(err, data) { if (err) { console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2)); } else { console.log("GetItem succeeded:", JSON.stringify(data, null, 2)); } });
我的DynamoDB有BOOL数据的项目: –
- 在布尔键上的DynamoDB查询
- AWS – 在DynamoDB表中放置一个GeoPoing并对其进行查询 – node.js
- AWS.DynamoDB.DocumentClient不提供put的数据
- AWS SDK与DynamoDB和putItem有关
- 我有12个项目的限制,但dynamodb查询总是只返回10
- 如何从AWS DynamoDB – JS lambda中的函数返回查询结果
- 当我试图在cloudsearch上传一个文档时,我无法处理这个错误
- 如何解决DynamoDB上的Joi错误TypeError:child.schema._getLabel不是函数
- 如何从s3存储和检索dynamodb中的照片url?