我是geode的新手 我正在添加如下:
gfsh>put --key=('id':'11') --value=('firstname':'Amaresh','lastname':'Dhal') --region=region
Result : true
Key Class : java.lang.String
Key : ('id':'11')
Value Class : java.lang.String
Old Value : <NULL>
当我这样查询时:
gfsh>query --query="select * from /region"
Result : true
startCount : 0
endCount : 20
Rows : 9
Result
-----------------------------------------
('firstname':'A2','lastname':'D2')
HI
Amaresh
Amaresh
('firstname':'A1','lastname':'D1')
World
World
('firstname':'Amaresh','lastname':'Dhal')
Hello
NEXT_STEP_NAME : END
当我尝试查询如下时,我没有得到价值:
gfsh>query --query="select * from /region r where r.id='11'"
Result : true
startCount : 0
endCount : 20
Rows : 0
NEXT_STEP_NAME : END
当然我可以使用get命令...但是我想在条件允许的地方使用..我在哪里做错了......它没有输出
由于
答案 0 :(得分:2)
在Geode中,关键不是“只是另一列”。实际上,基本查询语法仅隐式查询值的字段。但是,您可以使用以下语法在查询中包含密钥:
从/region.entries中选择value.lastname,value.firstname,其中key.id = 11
此外,通常的做法是在您的值类中包含id字段,即使它不是严格要求的。
答案 1 :(得分:1)
兰迪所说的是完全正确的,“关键”不是另一列。查询的确切格式应为
gfsh>query --query="select * from /Address.entries where key=2"
您在这里寻找的是获取“地址”区域的所有“条目”,然后查询密钥。
要检查您要查询的是哪一个,您可以触发此查询
gfsh>query --query="select * from /Address.entries"
答案 2 :(得分:1)
您始终可以使用get命令来获取与特定键有关的数据。
get --key=<KEY_NAME> --region=<REGION_NAME>
示例:
get --key=1 --region=Address
参考:https://gemfire.docs.pivotal.io/910/geode/tools_modules/gfsh/command-pages/get.html