开发者社区> 问答> 正文

Table Store GetRangeRequest ColumnCondition filter

能力有限第一次接触实在看不懂GetRangeRequest ColumnCondition filter要怎么去定义
var postData = messages.GetRangeRequest.encode(

    {
        table_name: "XXX",
        direction: messages.Direction.FORWARD,
        columns_to_get:[
            "XXX",
            "XXX"
        ],
        inclusive_start_primary_key: [
            {
                name: "XXX",
                value: {
                    type: messages.ColumnType.STRING,
                    v_string:'1369785565938'
                }
            },
            ...
        ],
        exclusive_end_primary_key: [
            {
                name: "XXX",
                value: {
                    type: messages.ColumnType.STRING,
                    v_string:'1570021527758'
                }
            },
            ...
        ],
        filter:{
            type:messages.ColumnConditionType.CCT_RELATION,
            condition: new Buffer(JSON.stringify({
                combinator:messages.ComparatorType.CT_EQUAL,
                column_name:"type",
                column_value:{
                    type:messages.ColumnType.STRING,
                    v_string:"error"
                },
                pass_if_missing:true
            }))
        }
    }
);

官网文档解释:
condition

类型: bytes
描述: CompositeCondition或者 RelationCondition类型的条件语句序列化后的二进制数据。

这句实在不解,导致运行报错:
OTSParameterInvalid!Failed to parse column condition.
求助,万分感激!

展开
收起
alengao 2016-08-01 14:43:44 4188 0
2 条回答
写回答
取消 提交回答
  • 已解决!!!
    filter:{

                type:messages.ColumnConditionType.CCT_RELATION,
                condition: messages.RelationCondition.encode({
                    comparator:messages.ComparatorType.CT_EQUAL,
                    column_name:"logType",
                    column_value:{
                        type:messages.ColumnType.STRING,
                        v_string:"error"
                    },
                    pass_if_missing:true
                })
            }
    

    应该使用messages.RelationCondition.encode,这样就能够序列化且转成proto buffer。帮助文档只简单的说序列化后的二进制数据。太过轻描淡写了,对于新手来说这帮助文档坑好多。

    2019-07-17 20:02:10
    赞同 展开评论 打赏
  • 表格存储(TableStore)技术负责人,专注结构化数据存储领域技术和解决方案。

    您是自己开发SDK?

    2019-07-17 20:02:10
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
AutoAlerts-From Data to Action 立即下载
对 2000 多亿条数据做一次 group by 需要多久? 立即下载
对2000多亿条数据做一次Group By 需要多久 立即下载