2

我是 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命令...但是我想使用where条件..我做错了..它没有输出

谢谢

4

3 回答 3

2

在 Geode 中,关键不是“只是另一列”。事实上,基本查询语法隐式只查询值的字段。但是,您可以使用以下语法在查询中包含键:

选择 value.lastname, value.firstname from /region.entries where key.id=11

此外,将 id 字段包含在您的值类中是相当普遍的做法,即使它不是严格要求的。

于 2015-11-30T18:30:37.863 回答
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

于 2020-08-04T15:58:20.217 回答
1

Randy所说的完全正确,'key'不是另一列。查询的确切格式应该是

gfsh>query --query="select * from /Address.entries where key=2"

您在这里寻找的是获取区域“地址”上的所有“条目”,然后查询密钥。

要检查您要查询哪一个,您可以触发此查询

   gfsh>query --query="select * from /Address.entries"
于 2015-12-01T16:30:24.030 回答