Sahas
Sahas

Reputation: 3186

Cloud Datastore 'like' query

I've an entity in Google Cloud Datastore. One of the properties is array of strings. For example:

property: skills

Entity 1:
value: ["mysql","sqlserver","postgresql","sqllite","sql-server-2008","sql"]

Entity 2:
value: ["css","css3"]

Now, I need to query for those entities that contain array elements css*

In typical SQL, it'll be select * from kindName where skills like 'css%'

I tried select * from kindName where skills = 'css', which works fine but how can I get entities that have css* elements similar to the SQL query?

Or

What's the best way to model the data for this?

Upvotes: 5

Views: 2426

Answers (1)

Dan McGrath
Dan McGrath

Reputation: 42018

You can do inequality range checks on a single indexed property as given in the example below. Range checks on strings are essentially how you can perform prefix searching on strings.

SELECT * from yourKind WHERE skills >= "css" AND skills < "cst"

As an example, here is the query performed on some sample data I created in the UI Console for Cloud Datastore:

Example performed in the Google Cloud Datastore's console

Upvotes: 2

Related Questions