如何 运行 Golang 中的数据存储区 GQL 查询?
How to run a Datastore GQL query in Golang?
我在 GQL 中有以下查询:
"SELECT * FROM Task WHERE Uuid = \"FOOBAR\" ORDER BY CreateTimeMs DESC LIMIT 1"
如何在 Golang 中直接 运行 这个查询?
query := datastore.NewQuery("SELECT * FROM Task WHERE Uuid = \"FOOBAR\" ORDER BY CreateTimeMs DESC LIMIT 1")
好像不对
更新:
我很清楚Query types。问题是我想直接使用 GQL 而不是将它们转换为查询类型。
看看 Query 类型的文档,通过查看它的方法和阅读它们各自的文档,你应该能够理解如何将你的 SQL 翻译成 datastore.Query
特定的方法调用。
例如你的sql可以写成:
q := datastore.NewQuery("Task").Filter("Uuid =", "FOOBAR").Order("-CreateTimeMs").Limit(1)
这只是构建您的查询值,要获得您需要的实际结果 run the query to get an iterator whose Next method 可用于读取结果。
如果您想避免 运行-iterate-next 舞蹈,您可以使用 GetAll 查询方法。
var tt = []*Task{}
q := datastore.NewQuery("Task").Filter("Uuid =", "FOOBAR").Order("-CreateTimeMs").Limit(1)
if _, err := q.GetAll(tt); err != nil {
panic(err)
}
log.Println(tt[0]) // your task
在此处阅读更多内容:
当我在 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.
所以这是不行的...
但是,通过 REST api projects.runQuery 实现它应该是可行的,但是您必须自己将结果解组为结构。
我在 GQL 中有以下查询:
"SELECT * FROM Task WHERE Uuid = \"FOOBAR\" ORDER BY CreateTimeMs DESC LIMIT 1"
如何在 Golang 中直接 运行 这个查询?
query := datastore.NewQuery("SELECT * FROM Task WHERE Uuid = \"FOOBAR\" ORDER BY CreateTimeMs DESC LIMIT 1")
好像不对
更新:
我很清楚Query types。问题是我想直接使用 GQL 而不是将它们转换为查询类型。
看看 Query 类型的文档,通过查看它的方法和阅读它们各自的文档,你应该能够理解如何将你的 SQL 翻译成 datastore.Query
特定的方法调用。
例如你的sql可以写成:
q := datastore.NewQuery("Task").Filter("Uuid =", "FOOBAR").Order("-CreateTimeMs").Limit(1)
这只是构建您的查询值,要获得您需要的实际结果 run the query to get an iterator whose Next method 可用于读取结果。
如果您想避免 运行-iterate-next 舞蹈,您可以使用 GetAll 查询方法。
var tt = []*Task{}
q := datastore.NewQuery("Task").Filter("Uuid =", "FOOBAR").Order("-CreateTimeMs").Limit(1)
if _, err := q.GetAll(tt); err != nil {
panic(err)
}
log.Println(tt[0]) // your task
在此处阅读更多内容:
当我在 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.
所以这是不行的...
但是,通过 REST api projects.runQuery 实现它应该是可行的,但是您必须自己将结果解组为结构。