首頁 > 後端開發 > Golang > 如何在 mongo-go-driver 中建構巢狀 OR/AND 查詢篩選器?

如何在 mongo-go-driver 中建構巢狀 OR/AND 查詢篩選器?

Patricia Arquette
發布: 2024-11-17 19:23:01
原創
355 人瀏覽過

How to Construct Nested OR/AND Query Filters in the mongo-go-driver?

mongo-go-driver 中的巢狀OR/AND 查詢篩選

在MongoDB 中,複雜的查詢篩選器可能涉及巢狀邏輯運算符,例如OR 和AND。 mongo-go-driver 允許您以程式設計方式建構這些濾鏡。

使用巢狀邏輯運算子時,了解驅動程式所需的結構至關重要。例如,$or 運算子需要一個條件數組,表示為 bson.A。另一方面,$and 運算符是預設運算符,不需要明確指定。

請考慮以下範例,您希望使用嵌套在AND 條件中的OR 條件建立篩選器:

filter := bson.M{
    "p": 10,
    "$and": bson.D{{"s", 30}, bson.M{"$or": bson.D{{"a", 1}}}}}
}
登入後複製

此程式碼會導致錯誤,因為它嘗試在AND 條件內混合bson.M 和bson.D。要解決此問題,您需要使用bson.A 作為$or 條件並刪除不必要的$and 運算符:

filter := bson.D{
    {"p", 10},
    {"$or", bson.A{
        bson.D{{"s", 30}},
        bson.D{{"a", 1}},
    }},
}
登入後複製

或者,您可以使用以下簡化語法:

filter := bson.M{
    "p": 10,
    "$or": bson.A{
        bson.M{"s": 30},
        bson.M{"a": 10},
    },
}
登入後複製

此語法建立與前面的範例相同的查詢過濾器。語法的選擇取決於您的偏好和查詢的複雜性。

以上是如何在 mongo-go-driver 中建構巢狀 OR/AND 查詢篩選器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板