Mike,
du bør være i stand til at gemme dine relationsdata i grafdatabasen. Dens høje ydeevne til at krydse store grafer kommer fra lokalitet, dvs. du kører ikke forespørgsler globalt, men starter snarere et sæt noder (som svarer til dokumenter i dit tilfælde, som slås op af et indeks. Du kan endda gemme start-node- id'er for hurtig adgang i dine mongo-dokumenter). Derfra kan du krydse vilkårligt store stier i konstant tid (med datasætstørrelse).
Hvad er dine andre krav (dvs. datasætstørrelse, antal samtidige adgange osv., forhold/grafkompleksitet).
Dine forespørgsler passer rigtig godt til grafdatabasen og kan let udtrykkes i dens termer.
Jeg vil foreslå, at du bare tager fat i en graphdb som neo4j og laver en hurtig spike med dit domæne for at verificere den generelle gennemførlighed og også finde ud af yderligere spørgsmål, du gerne vil have besvaret, før du investerer i den anden teknologi.
P.S. Hvis du ikke var begyndt endnu, kunne du også have gået med en ren graphdb-tilgang, da grafdatabaser er et supersæt af dokumentdatabaser. Og du vil hellere tale domæne i dit tilfælde alligevel end blot generiske dokumenter. (F.eks. er structr et CMS bygget oven på Neo4j).