有效地存储数据存储标签(为了通过标签获取)
storing datastore tags efficiently (for get by tags purposes)
我经常遇到这样的情况:
type Article struct {
Title string
User string
Content []byte
Tags []string
}
我希望能够像这样执行查询任务的地方:
var articles []Article
query := datastore.NewQuery("Article")
for _, filter := range filters {
if filter.User != "" {
query = query.Filter("User =", filter.User)
}
// how to do if for finding tags
}
keys, err := DatastoreClient().GetAll(ctx, query, &articles)
if err != nil {
return nil, err
}
return articles, nil
假设一篇文章有以下标签 []string{"golang", "ruby", "python", "programming"}
,我想检索所有包含标签 golang
和 programming
的文章,我怎样才能有效地实现这一点?
使用等号在数据存储中的数组中搜索作为包含。
这意味着,您需要通过此 属性 使用两个相等的过滤器进行查询。
GQL 示例。
SELECT * FROM Article WHERE Tags = "golang" AND Tags = "prgramming".
如果 Tags
是一个数组,则 equal 将表现为包含。那它。万事俱备。
我经常遇到这样的情况:
type Article struct {
Title string
User string
Content []byte
Tags []string
}
我希望能够像这样执行查询任务的地方:
var articles []Article
query := datastore.NewQuery("Article")
for _, filter := range filters {
if filter.User != "" {
query = query.Filter("User =", filter.User)
}
// how to do if for finding tags
}
keys, err := DatastoreClient().GetAll(ctx, query, &articles)
if err != nil {
return nil, err
}
return articles, nil
假设一篇文章有以下标签 []string{"golang", "ruby", "python", "programming"}
,我想检索所有包含标签 golang
和 programming
的文章,我怎样才能有效地实现这一点?
使用等号在数据存储中的数组中搜索作为包含。
这意味着,您需要通过此 属性 使用两个相等的过滤器进行查询。 GQL 示例。
SELECT * FROM Article WHERE Tags = "golang" AND Tags = "prgramming".
如果 Tags
是一个数组,则 equal 将表现为包含。那它。万事俱备。