Uploaded image for project: 'Go Driver'
  1. Go Driver
  2. GODRIVER-847

Cannot retrieve/decode value form camelcase fields

    • Type: Icon: Bug Bug
    • Resolution: Works as Designed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: CRUD, JSON & ExtJSON, mgobson
    • None

      Using struct below:

       

      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
      }
      

      When data is retrieved using:

       

       

      func (u *User) FindByUsername(userName string) error {
      	filter := bson.M{"username": userName}
      	err := u.collection.FindOne(ctx, filter).Decode(&u)
      	return err
      }
      

      All fields are populated except the ones with camelcase like 'firstName' and 'lastName'

       

      Data retrieved from querying from console:

       

      > db.users.find().pretty()
      {
      	"_id" : ObjectId("5c734c1a32bc9e3842b4deb1"),
      	"username" : "jljucutan",
      	"firstName" : "James",
      	"lastName" : "Jucutan",
      	"email" : "jljucutan@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}"
      		}
      	}
      }
      
      

      Data obtained from calling from the code

       

      {"Username":"jljucutan","FirstName":"","LastName":"","Email":"jljucutan@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"}

       

       

       

       

       

       

       

       

       

       

       

            Assignee:
            Unassigned Unassigned
            Reporter:
            jljucutan James Jucutan
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: