亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 json 字符串插入 MongoDB?

如何將 json 字符串插入 MongoDB?

Go
收到一只叮咚 2023-03-07 17:14:40
我有一個 json 字符串。像這樣:"{"http_requests":[{"http_requests":{"code":"400","method":"PUT","value":89}},{"http_requests":{"code":"200","method":"PUT","value":45}}]}"我想將這個 json 插入到 mongodb 中。但是我的代碼有錯誤。錯誤是“無法將類型字符串轉換為 BSON 文檔:WriteString 只能在位于元素或值但位于 TopLevel 上時寫入”func insertJson(json_value string) {   client, err := mongo.NewClient(options.Client().ApplyURI("mongodb+srv://abc:[email protected]/?retryWrites=true&w=majority"))   if err != nil {      log.Fatal(err)   }   ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)   err = client.Connect(ctx)   if err != nil {      log.Fatal(err)   }   defer client.Disconnect(ctx)   myDatabase := client.Database("my_db")   myCollection := myDatabase.Collection("my_collection")   myResult, err := myCollection.InsertOne(ctx, json_value)   if err != nil {      log.Fatal(err)   }   fmt.Println(myResult.InsertedID)}如何將此 json 字符串插入 mongodb?
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

首先要做的是:在 之后添加一個 ping 以檢查連接是否成功defer client.Disconnect(ctx)。


if err = client.Ping(ctx, readpref.Primary()); err != nil {

    log.Fatalf("ping failed: %v", err)

}

如果這沒有引發錯誤,您可以按照stackoverflow 中的說明解組 JSON 字符串:如何在 golang 中將 json 對象數組插入到 mongodb 中。但是,在這種情況下,使用interface{}instead of slice 如下:


var v interface{}

if err := json.Unmarshal([]byte(json_value), &v); err != nil {

    log.Fatal(err)

}

傳遞v給InsertOne。


注意:這是解決問題的一種方法。但是,推薦的解決方法是將 JSON 解組為帶有 json 和 bson 標記的結構,并將結構實例傳遞給InsertOne.


查看完整回答
反對 回復 2023-03-07
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

insertOne() 方法具有以下語法:


db.collection.insertOne(

   <document>,

   {

      writeConcern: <document> (optional)

   }

)

你所要做的就是


myCollection.insertOne(json_metrics)


查看完整回答
反對 回復 2023-03-07
  • 2 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號