第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用 mongo-go-driver 0.2.0 在 bson.A 中使用切片的元素

如何使用 mongo-go-driver 0.2.0 在 bson.A 中使用切片的元素

Go
慕后森 2023-06-01 17:13:49
如何使用給定的切片生成 bson.A?我需要這個(gè)來進(jìn)行動(dòng)態(tài)查詢。我正在從 mongo-go-driver alpha 升級(jí)到 beta 0.2.0,這已經(jīng)成為我項(xiàng)目中的一個(gè)重大變化,因?yàn)?API 現(xiàn)在不同了。https://godoc.org/github.com/mongodb/mongo-go-driver/bsoninput := []string{"bar", "world"}//expected outputbson.A{"bar", "world"}
查看完整描述

3 回答

?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊

不確定你是否找到了答案,但我昨天為此奮斗了一個(gè)多小時(shí)。


我不肯定這會(huì)解決你的問題。我假設(shè)您正在嘗試根據(jù)您的輸入構(gòu)建一個(gè)過濾器。最終我在嘗試傳遞數(shù)組時(shí)沒有使用 bson.A。


情況:試圖構(gòu)建一個(gè)過濾器,其中一個(gè) bson.D 元素是一個(gè)數(shù)組。


我以為我需要使用 bson.A。


我的初步假設(shè):


return bson.D{

  {"uuid", request.Uuid},

  {"action", request.Action},

  {"resource", bson.D{{"$in", bson.A{resourceStrings}}}},

}

哪里resourceStrings是一段字符串。


然而,這最終將構(gòu)建一個(gè)看起來像 FILTER :  [ {resource [{$in [[Orgs::Organizations::1 Orgs::Organizations::* Orgs::Organizations Orgs::*]]}]}]


*注意 $in 方法在這里尋找一個(gè)數(shù)組的數(shù)組。


我們想要的是: FILTER :  [{uuid 80} {action UpdateOrganization} {resource [{$in [Orgs::Organizations::1 Orgs::Organizations::* Orgs::Organizations Orgs::*]}]}]


如果我們傳入字符串的文字?jǐn)?shù)組,它將起作用......


return bson.D{

  {"uuid", request.Uuid},

  {"action", request.Action},

  {"resource", bson.D{{"$in", bson.A{"Orgs::Organizations::1", "Orgs::Organizations::*", "Orgs::Organizations", "Orgs::*"}}}},

}

經(jīng)過反復(fù)試驗(yàn),我發(fā)現(xiàn) bson.D 會(huì)直接接受數(shù)組。


最終我解決了這個(gè)問題


return bson.D{

  {"uuid", request.Uuid},

  {"action", request.Action},

  {"resource", bson.D{{"$in", resourceStrings}}},

}

從字面上看你的例子 - 如果你只是想將一個(gè)數(shù)組編組到一個(gè) bson.A 嘗試:


bson.A{input}


查看完整回答
反對(duì) 回復(fù) 2023-06-01
?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

所以 bson.A 底層類型是[]interface{},

我可以append像一片一樣使用它


查看完整回答
反對(duì) 回復(fù) 2023-06-01
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

這是我的代碼,用于根據(jù)存在于另一個(gè)集合中的 ID 刪除多個(gè)文檔。

我們首先從一個(gè)集合中收集所有 ID 并添加到一個(gè)切片中。然后我們使用刪除另一個(gè)集合中的文檔DeleteMany()


我正在展示相關(guān)代碼以保持代碼整潔。


杰森

[

    {

        "id": "602607bcfdc0548bfebbd0c7",

        "subject": "SUBJECT",

        "system": "SYSTEM",

        "board": "BOARD",

        "series": "SERIES",

        "paper": "PAPER",

        "year": "2021",

        "month": "February",

        "question_hex_ids": [

            "602607bcfdc0548bfebbd0c4",

            "602607bcfdc0548bfebbd0c5",

            "602607bcfdc0548bfebbd0c6"

        ]

    }

]

代碼


    var hexIDCollection []primitive.ObjectID

    database := db.Conn.Database("mydatabase")

    question := database.Collection("questions")


    //Iterating to collect IDs from paper

    for k, _ := range mystruct.question_hex_ids {


        // fetching all IDs and appending to slice

        ids := mystruct.question_hex_ids[k]

        hexID, err := primitive.ObjectIDFromHex(ids)

        if err != nil {

            fmt.Println("ObjectIDFromHex ERROR", err)

        }


        //Populating a slice of all the IDs

        hexIDCollection = append(hexIDCollection, hexID)

    }


    filter := bson.D{

        {"_id", bson.D{{"$in", hexIDCollection}}}, }


    deleteResult, err1 := question.DeleteMany(ctx, filter)

    if err != nil {

        fmt.Println("Question Deletion Error", err1)

    }


    fmt.Println("All questions Deleted: ", deleteResult)


查看完整回答
反對(duì) 回復(fù) 2023-06-01
  • 3 回答
  • 0 關(guān)注
  • 279 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)