我有一個(gè) gremlin 查詢,可以找到我想要存檔的頂點(diǎn),但它返回一個(gè)空數(shù)組。我的圖表的布局方式是一個(gè)頂點(diǎn)可以有多個(gè)父母和孩子。當(dāng)一個(gè)頂點(diǎn)被歸檔時(shí),它需要?dú)w檔所有受影響的后代,這些后代將被這個(gè)過程“孤立”。如果任何后代有返回中心頂點(diǎn)的路徑,那么它不應(yīng)該存檔它,因?yàn)樗粫?huì)被“孤立”g.V(itemId) // Find the item to delete. .union( // Start a union to return g.V(itemId), // both the item g.V(itemId) // and its descendants. .repeat(__.inE('memberOf').outV().store('x')) // Find all of its descendants. .cap('x').unfold() // Unfold them. .where(repeat(out('memberOf') // Check each descendant .where(hasId(neq(itemId))).simplePath()) // to see if it has a path back that doesn't go through the original vertex .until(hasId(centralId))) // that ends at the central vertex . .aggregate('exception') // Aggregate these together. .select('x').unfold() // Get all the descendants again. .where(without('exception'))) // Remove the exceptions. .property('deleted', true) // Set the deleted property. .valueMap(true) // Rteurn the results.當(dāng)它發(fā)現(xiàn)一些后代有返回中心頂點(diǎn)的路徑而不經(jīng)過原始頂點(diǎn)時(shí),它就會(huì)工作并返回它應(yīng)該返回的所有結(jié)果。但是,如果它找不到任何具有返回路徑的后代,那么理論上它應(yīng)該只返回所有后代。相反,它返回一個(gè)空數(shù)組。我的猜測(cè)是它在遍歷的那個(gè)階段之后卡住了,因?yàn)樗裁匆矝]找到,因此無法繼續(xù)進(jìn)行任何其他操作。如果在那個(gè)階段什么也沒找到,我該如何歸還所有后代?有關(guān)圖表的示例,請(qǐng)參閱我之前的問題。
- 1 回答
- 0 關(guān)注
- 137 瀏覽
添加回答
舉報(bào)
0/150
提交
取消