我真的很喜欢使用go,mgo和gin gonic ...我一直在创建一个迷你应用程序,我在使用mgo将新注册表插入mongoDB时遇到问题 . 我的错误说:
“PANIC:错误解析字段文档的元素0 ::由错误类型导致'0'字段,预期对象,找到0:[{date:new Date(1441051152939),from:”11“,to:” 12“,办公室:”2“,client_id:”1368465545“}] _”
我的结构是下一个:
type Reservation struct {
ID bson.ObjectId `bson:"_id,omitempty" json:"_id"`
Date time.Time `bson:"date" json:"date"`
From string `bson:"from" json:"from"`
To string `json:"to"`
Office string `json:"office"`
Client_id string `json:"client_id"` }
我正在尝试使用gin-gonic和mgo将其插入如下:
func addReservation(c *gin.Context) {
x := session.DB("projXXXX").C("reservation")
var reservations []Reservation
c.Bind(&reservations)>
err := x.Insert(&reservations)
if err != nil {
panic(err)
}
c.String(200,"whatever")
}
我在mongoDB中的集合是这样的:
{
"_id" : ObjectId("55ba2e611cb87b9a6d75e94b"),
"date" : ISODate("2015-10-22T00:00:00.000Z"),
"from" : "9",
"to" : "10",
"office" : "4",
"client_id" : "1123456469797"
}
非常感谢你的帮助
1 回答
从错误的角度来看,MongoDB正在看到一个希望看到单个对象的数组 . 看起来问题是您正在尝试将
[]Reservation
切片作为单个对象插入 .Collection.Insert不是将一片对象插入,而是将每个对象作为单独的参数插入 . 您可能想要使用the special ... syntax for calling a variadic function: