Mongodb 无法将类型bson.Raw转换为bson文档:读取的长度超过可用字节数
试图将一些json数据从API添加到数据库,但在尝试时出现此错误Mongodb 无法将类型bson.Raw转换为bson文档:读取的长度超过可用字节数,mongodb,go,Mongodb,Go,试图将一些json数据从API添加到数据库,但在尝试时出现此错误 无法将类型bson.Raw转换为bson文档:读取的长度超过可用字节数。长度=259839字节=1919951 我知道json远远低于mongodb的16mb限制,我甚至尝试从中导入一些小数据,但都出现了相同的错误。我只能导入一个测试结构来查看它是否正常工作,但我的api数据似乎没有通过。是否需要对api数据进行某种类型的转换?这是我的golang代码 func main(i int) { url := "http://
无法将类型bson.Raw转换为bson文档:读取的长度超过可用字节数。长度=259839字节=1919951
我知道json远远低于mongodb的16mb限制,我甚至尝试从中导入一些小数据,但都出现了相同的错误。我只能导入一个测试结构来查看它是否正常工作,但我的api数据似乎没有通过。是否需要对api数据进行某种类型的转换?这是我的golang代码
func main(i int) {
url := "http://api.open-notify.org/astros.json"
resp, err := http.Get(url)
if err != nil {
log.Fatalln(err)
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalln(err)
}
// _ = body
log.Println(string(body))
clientOptions := options.Client().ApplyURI("mongodb+srv://username:password@cluster0-slmxe.mongodb.net/dbtest?retryWrites=true&w=majority")
// Connect to MongoDB
client, err := mongo.Connect(context.TODO(), clientOptions)
if err != nil {
log.Fatal(err)
}
err = client.Ping(context.TODO(), nil)
if err != nil {
log.Fatal(err)
}
fmt.Println("Connected to database")
collection := client.Database("dbtest").Collection("test")
insertResult, err := collection.InsertOne(context.TODO(), body)
if err != nil {
log.Fatal(err)
}
fmt.Println("Inserted", insertResult.InsertedID)
}
您需要用bson.D包装json,以便能够将数据发送到Mongodb。这是为了构建本机go类型的表示。示例如下:
// insert the document {name: "Alice"}
res, err := coll.InsertOne(context.TODO(), bson.D{{"name", "Alice"}})
if err != nil {
log.Fatal(err)
}
请参阅以下文件:
您需要用bson.D包装json,以便能够将数据发送到Mongodb。这是为了构建本机go类型的表示。示例如下:
// insert the document {name: "Alice"}
res, err := coll.InsertOne(context.TODO(), bson.D{{"name", "Alice"}})
if err != nil {
log.Fatal(err)
}
请参阅以下文件:
我有JSON编码的数据(类型[]字节)如何将其导入Mongo?我有JSON编码的数据(类型[]字节)如何将其导入Mongo?