gpt4 book ai didi

mongodb - Golang Mongodb %!(额外

转载 作者:数据小太阳 更新时间:2023-10-29 03:05:15 28 4
gpt4 key购买 nike

我正在尝试将一个结构编码为 JSON,然后将其插入我的 Mongo 数据库,但不断出现此错误:%!(EXTRA main.Test={575590180 Me})。我究竟做错了什么?我完全从我从事的另一个项目中获取了这段代码,该项目可以毫无问题地插入文档。

package main

import (
"utils"
"hash/fnv"
"log"
"gopkg.in/mgo.v2"
"encoding/json"
)

type Test struct {
Id uint32
Name string
}

func ConnectDB() *mgo.Session {
session, err := mgo.Dial("localhost:27017")
if err != nil {
panic(err)
}
return session
}

func SaveMgoDoc(dbName string, collectionName string, file Test) bool {
session, err := mgo.Dial("localhost:27017")

if err != nil {
panic(err)
}

defer session.Close()

fileJson, err := json.Marshal(file)

if err != nil {
log.Printf("failed to marshal struct to json...\n", file)
return false
}

collection := session.DB(dbName).C(collectionName)
err = collection.Insert(&fileJson)

if err != nil {
log.Printf("failed to insert doc into database...\n", file)
return false
}

return true
}

func hash(s string) uint32 {
h := fnv.New32a()
h.Write([]byte(s))
return h.Sum32()
}

func main() {
utils.SaveMgoDoc("mydb", "mydoc", Test{hash("Me"), "Me"})
}

最佳答案

Insert 需要一个指向结构的指针,而不是 json 字符串。所以,在这种情况下,只需使用:

err = collection.Insert(&file)

关于mongodb - Golang Mongodb %!(额外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42400066/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com