I have the following problem. I need to convert a structure
to map[string]interface{}
in order to perform an update in database (using mgo as driver fo
The solution can be:
1. client json
-> struct
-> xml
-> map
-> database
2. Update partital with $set
operator:
collection.Update(bson.M{"_id": id}, bson.M{"$set": bson.M{"name": "new Name"}})
Read more: http://docs.mongodb.org/manual/reference/operator/update/set/
3. Load the document that is going to be updated and store it in a tmp variable. Parse the user input to another variable. Overwrite the values you need to preserve before updating.
If you are using go.mongodb.org/mongo-driver
, you will have to use UpdateOne
method to update the specific fields.
Here is the code
database := db.Conn.Database("myDatabase")
coll := database.Collection("myCollection")
filter := bson.M{"_id": bson.M{"$eq": objectHexID}}
update := bson.M{"$set": bson.M{"useremail": "abc@email.com"}}
updated, err := coll.UpdateOne(ctx, filter, update)