在geode的条件

时间:2015-11-30 12:57:18

标签: in-memory-database gemfire spring-data-gemfire geode

我是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命令...但是我想在条件允许的地方使用..我在哪里做错了......它没有输出

由于

3 个答案:

答案 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