Skip to content

Instantly share code, notes, and snippets.

@ma6174
Last active January 14, 2016 02:26
Show Gist options
  • Save ma6174/5bebe8a52a6fac5e708e to your computer and use it in GitHub Desktop.
Save ma6174/5bebe8a52a6fac5e708e to your computer and use it in GitHub Desktop.
mgo findAndModify change _id error
package main
import (
"log"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
func main() {
s, err := mgo.Dial("127.0.0.1:27017")
if err != nil {
log.Fatal(err)
}
coll := s.DB("test").C("test")
// do insert
err = coll.Insert(bson.M{"_id": "to_change_id"})
if err != nil {
log.Fatal(err)
}
// do change _id
var ret interface{}
_, err = coll.FindId("to_change_id").Apply(mgo.Change{
Update: bson.M{"$set": bson.M{"_id": "change_to_new_id"}},
}, &ret)
if err != nil {
log.Fatal(err)
}
log.Println(ret)
}
@ma6174
Copy link
Author

ma6174 commented Jan 14, 2016

2016/01/14 10:23:22 After applying the update to the document {_id: "to_change_id" , ...}, the (immutable) field '_id' was found to have been altered to _id: "change_to_new_id"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment