我正在使用这样的结构type User struct { Username string `json: "username" bson: "username"` FirstName string `json: "firstName" bson: "firstName"` LastName string `json: "lastName" bson: "lastName"` Email string `json: "email" bson: "email"` Gender string `json: "gender" bson: "gender"` Password string `json: "password" bson: "password"` Enabled bool `json: "enabled" bson: "enabled"` BirthDate time.Time `json: "birthDate" bson: "birthDate"` CreatedAt time.Time `json: "createdAt" bson: "createdAt"` UpdatedAt time.Time `json: "updatedAt" bson: "updatedAt"` collection *mongo.Collection}然后使用查询数据func (u *User) FindByUsername(userName string) error { var ctx, _ = context.WithTimeout(context.Background(), 10*time.Second) filter := bson.M{"username": userName} err := u.collection.FindOne(ctx, filter).Decode(&u) return err}我得到的结果是{"Username":"jbond","FirstName":"","LastName":"","Email":"email@gmail.com","Gender":"Male","Password":"","Enabled":true,"BirthDate":"0001-01-01T00:00:00Z","CreatedAt":"0001-01-01T00:00:00Z","UpdatedAt":"0001-01-01T00:00:00Z"}大多数数据都已填充,但驼峰式字段除外,当我从控制台查询时,数据就在那里> db.users.find().pretty(){ "_id" : ObjectId("xxxxxxxxxxxxxxxxxxxxxxxx"), "username" : "jbond", "firstName" : "James", "lastName" : "Bond", "email" : "email@gmail.com", "password" : "", "enabled" : true, "gender" : "Male", "birthDate" : { "type" : { "code" : "function Date() {\n [native code]\n}" } }, "createdAt" : { "type" : { "code" : "function Date() {\n [native code]\n}" }, "default" : { "code" : "function now() {\n [native code]\n}" } }, "updatedAt" : { "type" : { "code" : "function Date() {\n [native code]\n}" }, "default" : { "code" : "function now() {\n [native code]\n}" } }}我不明白为什么要全部小写。或者我错过了什么?
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
不,它不是解码驼峰式字段失败。它无法解析结构标签。
根据文档:
按照惯例,标记字符串是可选的空格分隔键:“值”对的串联。每个键都是一个非空字符串,由除空格(U+0020 ' ')、引号(U+0022 '"')和冒号(U+003A ':')之外的非控制字符组成。每个值都被引用使用 U+0022 '"' 字符和 Go 字符串文字语法。
json:
您应该删除and之后的空格bson:
。
- 1 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消