in-memory-database - 晶洞中的条件

标签 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 命令...但我想使用 where 条件...我做错的地方...它没有输出

谢谢

最佳答案

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

从 key.id=11 的/region.entries 中选择 value.lastname、value.firstname

此外,在值类中包含 id 字段是相当常见的做法,即使这不是严格要求的。

关于in-memory-database - 晶洞中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33999210/

相关文章:

redis - 为什么 Redis 中没有有序的 hashmap?

spring - 删除 gemfire 缓存中的查询?

spring - 在一天中的特定时间而不是通过 TTL 进行缓存驱逐

java - 使用 GemFire 进行单元测试 - 最佳实践

linux - Linux 中的 Spring Data GemFire 服务器 java.net.BindException

Redis 预 GET 事件

erlang - ets 可以找到该记录但无法删除它

java - Hsql从现有数据库创建测试数据

java - Spring框架4通用类依赖 Autowiring 不起作用