无法将数组解码为 ObjectID
cannot decode array into an ObjectID
我有这个结构,当我将它从数据库解码为结构时,我收到了这个错误 cannot decode array into an ObjectID
type Student struct {
ID primitive.ObjectID `bson:"_id,omitempty"`
...
Hitches []primitive.ObjectID `bson:"hitches"`
...
}
我正在使用这个函数来解码
func GetStudentByID(ID primitive.ObjectID) model.Student {
// Filter
filter := bson.M{"_id": ID}
// Get the collection
studentCollection := GetStudentCollection()
// The object that it will return
student := model.Student{}
// Search the database
err := studentCollection.FindOne(context.TODO(), filter).Decode(&student)
if err != nil {
fmt.Println("Student DAO ", err) <----------- Error is output here
return model.Student{}
}
return student
}
这是来自 MongoDB
的屏幕截图
hitches
在您的数据库中不是一个 "simple" 数组,它是一个数组数组,因此您可以将其解码为 [][]primitive.ObjectID
:[=15= 类型的值]
type Student struct {
ID primitive.ObjectID `bson:"_id,omitempty"`
...
Hitches [][]primitive.ObjectID `bson:"hitches"`
...
}
虽然hitches
中的每个元素都包含一个元素,所以这个“2D”数组结构并没有真正意义,但它可能是您创建这些文档的部分的错误。如果您更改(更正)它以在 MongoDB 中创建一个“一维”数组,那么您可以将其解码为 []primitive.ObjectID
.
类型的值
我有这个结构,当我将它从数据库解码为结构时,我收到了这个错误 cannot decode array into an ObjectID
type Student struct {
ID primitive.ObjectID `bson:"_id,omitempty"`
...
Hitches []primitive.ObjectID `bson:"hitches"`
...
}
我正在使用这个函数来解码
func GetStudentByID(ID primitive.ObjectID) model.Student {
// Filter
filter := bson.M{"_id": ID}
// Get the collection
studentCollection := GetStudentCollection()
// The object that it will return
student := model.Student{}
// Search the database
err := studentCollection.FindOne(context.TODO(), filter).Decode(&student)
if err != nil {
fmt.Println("Student DAO ", err) <----------- Error is output here
return model.Student{}
}
return student
}
这是来自 MongoDB
的屏幕截图hitches
在您的数据库中不是一个 "simple" 数组,它是一个数组数组,因此您可以将其解码为 [][]primitive.ObjectID
:[=15= 类型的值]
type Student struct {
ID primitive.ObjectID `bson:"_id,omitempty"`
...
Hitches [][]primitive.ObjectID `bson:"hitches"`
...
}
虽然hitches
中的每个元素都包含一个元素,所以这个“2D”数组结构并没有真正意义,但它可能是您创建这些文档的部分的错误。如果您更改(更正)它以在 MongoDB 中创建一个“一维”数组,那么您可以将其解码为 []primitive.ObjectID
.