golang 中mgo update報錯: The dollar ($) prefixed field '$inc' in '$inc' is not valid for storage.
- 2020 年 4 月 8 日
- 筆記
_, err := c.Find(bson.M{"index": index}).Apply(mgo.Change{ Upsert: true, ReturnNew: false, Update: bson.M{"create_time": time.Now(), "update_time": time.Now(), "operation": 0, "$inc": bson.M{"req_cnt": 1}}, }, nil) if err != nil { return err }
由於"$inc"和前面的update衝突,報錯誤:The dollar ($) prefixed field '$inc' in '$inc' is not valid for storage.
因此改為:
_, err := c.Find(bson.M{"index": index}).Apply(mgo.Change{ Upsert: true, ReturnNew: false, Update: bson.M{"$set": bson.M{"create_time": time.Now(), "update_time": time.Now(), "operation": 0}, "$inc": bson.M{"req_cnt": 1}}, }, nil) if err != nil { return err }