簡體   English   中英

Go 使用bolthold的boltDB查詢

[英]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條件來檢查它是否等於tenantIDKeyIsNil

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM