From 84a36c49cb49c5e6d5ba2c48b5067c9b1bfa3817 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net>
Date: Mon, 5 May 2014 14:32:14 -0500
Subject: [PATCH] Using Upsert() instead of Insert() and Update(). Closing #13.

---
 mongo/collection.go | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/mongo/collection.go b/mongo/collection.go
index f84ebcfd..c8d73980 100644
--- a/mongo/collection.go
+++ b/mongo/collection.go
@@ -199,15 +199,9 @@ func (self *Collection) Append(item interface{}) (interface{}, error) {
 	var err error
 	var id bson.ObjectId
 
-	// Let's create an empty item to allocate an ID.
 	id = bson.NewObjectId()
 
-	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 {
+	if _, err = self.collection.Upsert(bson.M{"_id": id}, item); err != nil {
 		return nil, err
 	}
 
-- 
GitLab