Bir grafiğin içinden nasıl geçebilir ve bir köşe değerinin değerini artırabilirim? Ya belirli bir miktar ya da ona yönelen bir kenarın bir özelliği ile bir miktar. Örn.,Bir TinkerPop grafiğinde bir köşe özelliği değeri nasıl artırılır
örn. Aşağıdaki grafikte ile:
gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> a = g.addV('name','a','amount', 100).next()
==>v[0]
gremlin> b = g.addV('name','b','amount', 200).next()
==>v[3]
gremlin> c = g.addV('name','c','amount', 300).next()
==>v[6]
gremlin> a.addEdge('fill', b, 'bonus', 20)
==>e[9][0-drain->3]
gremlin> b.addEdge('fill', c, 'bonus', 40)
==>e[10][3-drain->6]
gremlin>
çok
1) I 10
her tepe artırmak nasıl? sonunda
gremlin> g.V().valueMap()
==>[amount:[110],name:[a]]
==>[amount:[210.0],name:[b]]
==>[amount:[310.00],name:[c]]
deyimi Verilen:
g.V(a).property('amount', X)
ben böyle bir şey yapmak çalışıyorum tahmin:
g.V(a).property('amount', g.V(a).values('amount').next()+10)
.. .butumdaki tüm köşeler için. Bu Tinkerpop2 loop()
ve it.object
yardımcı olabileceğini varmış gibi görünüyor, ama
Düzenleme Tinkerpop3 değil görünüyor: Tamam, oldukça orada daha yakın, ama:
gremlin> g.V().as('x').property('amount', select('x').by('amount')+10)
No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.plus() is applicable for argument types: (java.lang.Integer) values: [10]
Possible solutions: sum(), take(int), sum(groovy.lang.Closure), is(java.lang.Object), use([Ljava.lang.Object;), drop(int)
Type ':help' or ':h' for help.
Display stack trace? [yN]
2) Nasıl her köşe artırır ediyorum bonus
özelliğinin değeri, fill
kenarına yol açar.
gremlin> g.V().valueMap()
==>[amount:[100],name:[a]]
==>[amount:[220.0],name:[b]]
==>[amount:[340.00],name:[c]]
bunu yapmak için bir sack
kullanarak çalıştı, ancak bir çuval kastetmek boyunca veri biriken olarak oldukça work it out could not: sonunda
withSack
kodunu
repeat
cümleciğine koymaya çalıştım, ancak bu işe yaramadı. Bir özelliğin değerini bir köşe noktasından sonraki köşe çizgisindeki bir işleme nasıl geçirebileceğimi anlamıyorum.