Im ayant un problème dans la coquille de Gremlin, lors de l'exécution de la commande suivante:multiplie Aggregate-étape suivante Graph-Step
g.V().hasLabel('FirstLabel').aggregate('nodes')
.V().hasLabel('SecondLabel').aggregate('nodes')
.cap('nodes')
Mon but est de regrouper tous les noeuds correspondant à ces deux étiquettes. Je sais que je peux réaliser ceci avec différentes étapes de filtrage, mais je veux accéder aux noeuds avec l'agrégat. L'exemple donné multiplie tout après l'étape .V() pour chaque objet portant l'étiquette firstLabel. Si j'ai 3 nœuds avec FirstLabel et 3 nœuds avec Secondlabel, le jeu de résultats me donne les 3 premiers nœuds et les 3 autres nœuds 3 fois (donc 12 nœuds).
Je peux cependant atténuer cela en utilisant .limit (1) après le premier agrégat, mais cela ne semble pas être une bonne solution.
Existe-t-il un moyen de réaliser l'étape graphique seulement une fois sans la limite?
Merci, cela a fonctionné! Mais je ne comprends toujours pas pourquoi le problème se produit. Une simple action barrier() au lieu de cap() n'a aucun effet. Je ne comprends pas pourquoi aggregate(). Cap() réduit le traversier à 1 – TApplis
La clé est d'utiliser une étape de barrière réductrice. 'cap()', 'fold()', 'count()', etc vont tous fonctionner, car ils mènent tous à un seul traverser restant. –