能力有限第一次接触实在看不懂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.
求助,万分感激!
已解决!!!
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。帮助文档只简单的说序列化后的二进制数据。太过轻描淡写了,对于新手来说这帮助文档坑好多。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。