2015-11-30 5 views
2

Я новичок в геодезии.
Я добавляю, как показано ниже:Где условие в геодезии

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 ... Но я хочу использовать там условие. Где я делаю неправильно. Он не дает выход

Thanks

ответ

2

В Geode ключ не является «просто другой колонкой». Фактически, основной синтаксис запроса неявно запрашивает только поля значения. Тем не менее, вы можете включить ключ в запросе, используя следующий синтаксис:

выберите value.lastname, value.firstname из /region.entries где key.id = 11

Кроме того, она является довольно распространенной практикой включать поле id в вашем классе значений, даже если оно строго не требуется.

+0

@ Randy..It оленья кожа дать мне результат – Aman

+1

я вижу, что происходит.Синтаксис запроса прав, но есть проблема с «put», и на самом деле документация gemfire по gfsh делает ту же ошибку. Когда я попробовал то же самое, я заметил, что результат из put говорит, что ключевым классом является java.lang.String. Таким образом, он буквально хранит строку "('id': '11')". Командная строка gfsh не является отличным способом работы со сложными типами данных. Я думаю, что если вы выполните «пометку» через API или даже интерфейс REST, запрос будет работать. –

1

Что Рэнди сказал именно правильно, «ключ» не другой столбец. Точный формат запрос должен быть

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

Что вы ищете здесь получает всю „запись“ на регион «Адрес», а затем запрашивая ключ.

чтобы проверить, какой из них вы хотите, чтобы запрос вы можете запустить этот запрос,

gfsh>query --query="select * from /Address.entries" 
+0

Это не ответ на вопрос. Как я могу запросить, когда у меня есть Id: 1 – Aman