首页 文章

使用mgo错误插入ISODate字段

提问于
浏览
1

我真的很喜欢使用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 回答

  • 4

    从错误的角度来看,MongoDB正在看到一个希望看到单个对象的数组 . 看起来问题是您正在尝试将 []Reservation 切片作为单个对象插入 .

    Collection.Insert不是将一片对象插入,而是将每个对象作为单独的参数插入 . 您可能想要使用the special ... syntax for calling a variadic function

    err := x.Insert(reservations...)
    

相关问题