首页 文章

使用图表中的属性进行计算 - Neo4j Embedded Java [重复]

提问于
浏览
0

这个问题在这里已有答案:

我在Neo4j中有一个图表,该图表中的每个关系都有一个名为InverseRandomNumber的属性 . 我想遍历所有节点,并且每个节点都从连接到节点的所有关系中获取这些属性,对这些属性值求和并将sum保存为节点中的属性 . InverseRandomNumber是一个整数或双精度,我使用Java中嵌入的Neo4j 2.3.3 . 您可以在下面找到我的代码 .

Label myLabel = DynamicLabel.label("Data");
final RelationshipType type2 = DynamicRelationshipType.withName("Rel"); 

ResourceIterator<Node> users = graphDb.findNodes( myLabel, "Group", "Random" );

Node firstUserNode;
while ( users.hasNext() )
{
    firstUserNode = users.next();

    ArrayList<Object> RelList = new ArrayList<Object>();
    if(firstUserNode.hasRelationship(Direction.BOTH)){
        for (Relationship relationship : firstUserNode.getRelationships(Direction.BOTH)){
            RelList.add(relationship.getProperty("InverseRandomNumber"));
        }
    }

    Double sum = 0.0;
    Double dd = 0.0;

    for(int j=0; j < RelList.size(); j++){
        dd = toDouble(RelList.get(j));
        sum+=dd;
    }

    firstUserNode.setProperty("SumInverse",sum);        
}
users.close();

在上面的代码中,我使用 toDouble 方法将我得到的值变为double . 这是处理数值属性的正确方法还是更有效和准确的另一种方法?

有任何想法吗?

1 回答

  • 0

    如果你不想使用BigDecima:

    BigDecimal.valueOf((Double)n.getProperty("InverseRandomNumber"));
    

相关问题