[英]Go boltDB query using bolthold
我正在嘗試使用 Go 為 boltDB 創建一個查詢。
我必須有一個查詢來檢查角色和 tenantID。 基本上,該項目必須始終包含該角色,如果該項目具有 tenantID,它也必須匹配,但是如果該項目沒有 tenantID(如果它為 nil),它也必須返回它。
所以我想出了下面的查詢來檢查角色和 tenantID,但不檢查 tenantID 是否為 nil。 誰能幫我解決這個問題? 考慮到 nil 的 tenantID,我需要向該查詢添加什么?
query := bolthold.Where(roleskey).ContainsAny(bolthold.Slice(roles)...).And(tenantIDKey).Eq(tenantID)
您可以使用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)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.