diff --git a/mongo/collection.go b/mongo/collection.go index c8d739800b49e9a65fdc2b6c0a9a6c8de1620bb7..32eafebd37d9240ff62696db2ae10458a4fb978d 100644 --- a/mongo/collection.go +++ b/mongo/collection.go @@ -201,11 +201,32 @@ func (self *Collection) Append(item interface{}) (interface{}, error) { id = bson.NewObjectId() - if _, err = self.collection.Upsert(bson.M{"_id": id}, item); err != nil { + // Allocating a new ID. + if err = self.collection.Insert(bson.M{"_id": id}); err != nil { + return nil, err + } + + // Now append data the user wants to append. + if err = self.collection.Update(bson.M{"_id": id}, item); err != nil { return nil, err } return id, nil + + /* + var id bson.ObjectId + var err error + + id = bson.NewObjectId() + + _, err = self.collection.Upsert(bson.M{"_id": id}, item); + + if err != nil { + return nil, err + } + + return id, nil + */ } // Returns true if the collection exists.