コード例 #1
0
func (m *MyMongoContext) RepoCreateFamily(family *models.Family) (id string, err error) {
	mongoSession := m.Session.Clone()
	defer mongoSession.Close()

	c := mongoSession.DB(util.Configuration.MongoDbName).C(familiesCollection)

	id = util.GetNewId()
	family.FamilyId = id

	err = c.Insert(family)
	if mgo.IsDup(err) {
		// retry insert with new id
		m.RepoCreateFamily(family)
	} else if err != nil {
		fmt.Errorf("Mongo insert to %s/%s returned '%s'", util.Configuration.MongoDbName,
			familiesCollection, err.Error())
	}
	return
}