Mgo 和 golang 问题。我又遇到问题了。我尝试更新数据库中的记录,但运行简单命令visitors.UpdateId(v.Id, bson.M{"$set": zscore});wherezscore是 的变量type Zscore,不起作用。但是,如果我手动转换zscore为bson.M结构,则一切正常。有人知道如何使用 mgo 更新 mongodb 中的记录,而无需手动将结构值转储到 bson.M 中吗?例子:type Zscore struct { a float64 `bson:"a,omitempty" json:"a"` b float64 `bson:"b,omitempty" json:"b"` c float64 `bson:"c,omitempty" json:"c"`}v := Visitor{}zscore := Zscore{}visitors := updater.C("visitors")for result.Next(&v) { zscore.a = 1 zscore.b = 2 zscore.c = 0 //does not work if err := visitors.UpdateId(v.Id, bson.M{"$set": zscore}); err != nil { log.Printf("Got error while updating visitor: %v\n", err) } //works set := bson.M{ "zscore.a": zscore.a, "zscore.b": zscore.b, "zscore.c": zscore.c, } if err := visitors.UpdateId(v.Id, bson.M{"$set": set}); err != nil { log.Printf("Got error while updating visitor: %v\n", err) }}
- 1 回答
- 0 关注
- 251 浏览
添加回答
举报
0/150
提交
取消