Thanks Dan!  Got it.

Regards,
Dharam

On Jan 2, 2017 23:33, "Dan Smith" <[email protected]> wrote:

> HI Dharam,
>
> I think the way you would do such a query in OQL is something like this (I
> based this on the section on querying nested collections on this page
> <http://geode.apache.org/docs/guide/getting_started/querying_quick_reference.html>
> ):
>
> SELECT book FROM /jsonRegion store, store.book book WHERE book.category =
> 'fiction'
>
> -Dan
>
> On Sun, Jan 1, 2017 at 6:22 AM, Dharam Thacker <[email protected]>
> wrote:
>
>> Hi,
>>
>> Forgot to mention that not only for JSON but even if you have domain
>> model defined.
>>
>> Region<Long,Store> store;
>>
>> Class Store {
>>     Long storeId;
>>     Set<Book> books;
>>
>>    // Other stuffs
>> }
>>
>> - Dharam Thacker
>>
>> On Sun, Jan 1, 2017 at 7:26 PM, Dharam Thacker <[email protected]
>> > wrote:
>>
>>> Hi Team,
>>>
>>> I have a JsonRegion which looks like Region<String,PdxInstance>.
>>>
>>> Example : jsonRegionTemplate.put("1", JSONFormatter.fromJSON(s));
>>>
>>> There is a simple requirement where my query say, "Give me all books
>>> whose category is fiction"
>>>
>>> DBMS : select * from Book where catrgory = 'fiction' [Simple as there is
>>> only 1 store]
>>>
>>> DBMS : select b.* from Store s,Book b where s.id = b.storeId and
>>> b.category = 'fiction' [If there are multiple stores -- But simple and
>>> clean]
>>>
>>> OQL : select j.store.book from /jsonRegion j where
>>> j.store.book[0].category = 'fiction'
>>>
>>> *Above OQL is not all worth I guess as you can never know index :)
>>> [Trivial]. *
>>>
>>>
>>>
>>> *Is there any way to extract the same?*
>>>
>>> *Probably : select j from /jsonRegion j where j.store.book[*].category =
>>> 'fiction'*
>>>
>>> Contents as below, which I extracted using below,
>>>
>>> System.out.println("In region [" + regionName + "] created key [" + key+
>>> "] --> value [" + JSONFormatter.toJSON((PdxInstance) newValue) + "]");
>>>
>>> key [1] --> value [{
>>>   "store" : {
>>>     "book" : [ {
>>>       "category" : "reference",
>>>       "author" : "Nigel Rees",
>>>       "title" : "Sayings of the Century",
>>>       "price" : 8.95
>>>     }, {
>>>       "category" : "fiction",
>>>       "author" : "Evelyn Waugh",
>>>       "title" : "Sword of Honour",
>>>       "price" : 12.99
>>>     }, {
>>>       "category" : "fiction",
>>>       "author" : "Herman Melville",
>>>       "title" : "Moby Dick",
>>>       "isbn" : "0-553-21311-3",
>>>       "price" : 8.99
>>>     }, {
>>>       "category" : "fiction",
>>>       "author" : "J. R. R. Tolkien",
>>>       "title" : "The Lord of the Rings",
>>>       "isbn" : "0-395-19395-8",
>>>       "price" : 22.99
>>>     } ],
>>>     "bicycle" : {
>>>       "color" : "red",
>>>       "price" : 19.95
>>>     }
>>>   }
>>> }]
>>>
>>> Thanks,
>>> - Dharam Thacker
>>>
>>
>>
>

Reply via email to