我正在尝试使用Go为boltDB创建一个查询。
我必须有一个查询来检查角色和tenantID。基本上,项目必须始终包含角色,如果项具有tenantID,则必须匹配,但是如果项没有tenantID (如果为零),则还必须返回它。
因此,我提出了下面的查询,它检查角色和tenantID,但不检查tenantID是否为零。有人能帮我吗?我需要在这个查询中添加什么来考虑到零的tenantID?
query := bolthold.Where(roleskey).ContainsAny(bolthold.Slice(roles)...).And(tenantIDKey).Eq(tenantID)发布于 2022-04-30 10:45:01
可以使用Or条件检查它是否等于tenantIDKey或IsNil
query := bolthold.
Where(roleskey).
ContainsAny(bolthold.Slice(roles)...).
And(tenantIDKey).IsNil().
Or(
bolthold.
Where(tenantIDKey).
Eq(tenantID)
)query := bolthold.
Where(roleskey).
ContainsAny(bolthold.Slice(roles)...).
And(tenantIDKey).
Eq(tenantID).
Or(
bolthold.
Where(tenantIDKey).
IsNil()
)你也可以用In代替ContainsAny
query := bolthold.
Where(roleskey).
In(bolthold.Slice(roles)...).
And(tenantIDKey).IsNil().
Or(
bolthold.
Where(tenantIDKey).
Eq(tenantID)
)https://stackoverflow.com/questions/72058075
复制相似问题