// Insert a new document, and assign a UID to it, func (col *Col) InsertWithUID(doc interface{}) (newID uint64, newUID string, err error) { newUID = uid.NextUID() if docMap, ok := doc.(map[string]interface{}); !ok { err = errors.New("Only JSON object document may have UID") return } else { docMap["_uid"] = newUID newID, err = col.Insert(doc) return } }
// Give a document (identified by ID) a new UID. func (col *Col) ReassignUID(id uint64) (newID uint64, newUID string, err error) { newUID = uid.NextUID() var originalDoc interface{} if err = col.Read(id, &originalDoc); err != nil { return } if docWithUID, ok := originalDoc.(map[string]interface{}); !ok { err = errors.New("Only JSON object document may have UID") return } else { docWithUID["_uid"] = newUID newID, err = col.Update(id, docWithUID) return } }