大佬教程收集整理的这篇文章主要介绍了node.js – 为什么使用Limit和FilterExpression扫描DynamoDB不返回符合过滤器要求的项目?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
docs说:
代码(NODEJS):
var params = { ExpressionAttributenames: {"#user": "User"},ExpressionAttributeValues: {":user": parseInt(user.id)},FilterExpression: "#user = :user and attribute_not_exists(Removed)",Limit: 2,Tablename: "XXXX" }; DynamoDB.scan(params,function(err,data) { if (err) { dataToSend.message = "Unable to query. Error: " + err.message; } else if (data.Items.length == 0) { dataToSend.message = "No results were found."; } else { dataToSend.data = data.Items; console.log(dataToSend); } });
表XXXX定义:
>主分区键:用户(号码)
>主要排序键:标识符(字符串)
> INDEX:
>索引名称:RemovedIndex
>类型:GSI
>分区键:删除(数字)
>排序键: –
>属性:ALL
在上面的代码中,如果我删除Limit参数,DynamoDB将返回符合过滤器要求的项目.所以,条件还可以.但是当我使用Limit参数扫描时,结果为空.
XXXX表有5个项目.只有2个第一个具有Removed属性.当我在没有Limit参数的情况下扫描时,DynamoDB返回3个没有Removed属性的项目.
我做错了什么?
以上是大佬教程为你收集整理的node.js – 为什么使用Limit和FilterExpression扫描DynamoDB不返回符合过滤器要求的项目?全部内容,希望文章能够帮你解决node.js – 为什么使用Limit和FilterExpression扫描DynamoDB不返回符合过滤器要求的项目?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。