Search code examples
gogoogle-cloud-datastoregql

How to run a Datastore GQL query in Golang?


I have the following query in GQL:

"SELECT * FROM Task WHERE Uuid = \"FOOBAR\" ORDER BY CreateTimeMs DESC LIMIT 1"

How can I directly run this query in Golang?

query := datastore.NewQuery("SELECT * FROM Task WHERE Uuid = \"FOOBAR\" ORDER BY CreateTimeMs DESC LIMIT 1") seems to be incorrect.

UPDATE:
I am very aware of the Query types. The thing is that I would like to use GQL directly instead of translating them into Query types.


Solution

  • I was searching to solve exactly the same problem when I came across this note in the GQL documentation:

    Note: Google Cloud Client Library for Java and Google Cloud Client Library for Ruby support GQL, but other Google Cloud client libraries do not.

    So that's a no-go ...

    However, it should be feasible to implement it over the REST api projects.runQuery but then you have to unmarshal the result into structs by yourself.