func (p *mgoPersistenceProvider) loadVersionsByService(serviceIdentifier string, graph *cayley.Handle, session *mgo.Session, target common.IServiceRegistry) error { var startingNodeID = utils.CreateServiceDefinitionKey(serviceIdentifier) var path = cayley.StartPath(graph, startingNodeID).Out(utils.ContainsVersionRel) it := path.BuildIterator() for cayley.RawNext(it) { var version serviceVersion var serviceVersionNode = graph.NameOf(it.Result()) err := session.DB("test").C("serviceVersions").Find(bson.M{"_id": serviceVersionNode}).One(&version) if err != nil { return fmt.Errorf("Cannot find %s in collection 'serviceVersions': %s", serviceVersionNode, err.Error()) } target.AddServiceVersion(serviceIdentifier, version.Version) } return nil }