首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bolthold的Go boltDB查询

使用bolthold的Go boltDB查询
EN

Stack Overflow用户
提问于 2022-04-29 12:35:37
回答 1查看 75关注 0票数 1

我正在尝试使用Go为boltDB创建一个查询。

我必须有一个查询来检查角色和tenantID。基本上,项目必须始终包含角色,如果项具有tenantID,则必须匹配,但是如果项没有tenantID (如果为零),则还必须返回它。

因此,我提出了下面的查询,它检查角色和tenantID,但不检查tenantID是否为零。有人能帮我吗?我需要在这个查询中添加什么来考虑到零的tenantID?

代码语言:javascript
复制
query := bolthold.Where(roleskey).ContainsAny(bolthold.Slice(roles)...).And(tenantIDKey).Eq(tenantID)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-30 10:45:01

可以使用Or条件检查它是否等于tenantIDKeyIsNil

代码语言:javascript
复制
query := bolthold.
         Where(roleskey).
         ContainsAny(bolthold.Slice(roles)...).
         And(tenantIDKey).IsNil().
         Or(
           bolthold.
           Where(tenantIDKey).
           Eq(tenantID)
         )
代码语言:javascript
复制
query := bolthold.
         Where(roleskey).
         ContainsAny(bolthold.Slice(roles)...).
         And(tenantIDKey).
         Eq(tenantID).
         Or(
            bolthold.
            Where(tenantIDKey).
            IsNil()
         )

你也可以用In代替ContainsAny

代码语言:javascript
复制
query := bolthold.
         Where(roleskey).
         In(bolthold.Slice(roles)...).
         And(tenantIDKey).IsNil().
         Or(
           bolthold.
           Where(tenantIDKey).
           Eq(tenantID)
         )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72058075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档