Popoto.js Neo4j-如何使用特定节点启动Graph

时间:2017-06-18 01:45:35

标签: javascript graph neo4j cypher

我已经使用我的Neo4j配置了Popoto.js,它运行正常。 但我的要求是用我想要的节点启动grpah。例如,如果我传递一个node-id或一个键约束,那么该图应该以该节点作为根节点开始。默认情况下,图形以我们传递给start方法的标签开头。 有没有选择这样做?

我尝试过使用 getPredefinedConstraints 。这样可行。但不幸的是,它在具有约束的特定节点类型中进行过滤,无论它在遍历时出现在哪里,这是不可取的。 我在下面尝试过,但这并没有完全解决我的需求。请帮忙。

"Person" :{
    "returnAttributes":["name","age"],
    "constraintAttribute" : "name",
    "getPredefinedConstraints": function (node) {
        x = ["$identifier.name =~ '(?i).*"  + nameValue + ".*'"];
        return x;
    }
}

1 个答案:

答案 0 :(得分:0)

添加根节点时,您可以使用事件侦听器来设置值,如下例所示:

请注意,您还可以将根节点设置为" immutable"表示避免价值取消选择。

/**
 * Listener used when root node is added
 * In this listener root node is initialized with a value
 * and set in immutable state to avoid value deselection.
 *
 * @param rootNode root node reference when graph is created.
 */
var rootNodeListener = function (rootNode) {

    // Change root node type and label with instanceData
    rootNode.value = {
        type: popoto.graph.node.NodeTypes.VALUE,
        label: "Person",
        attributes: {name:'Tom Hanks'}
    };

    // Set node as immutable, in this state the value cannot be deselected.
    rootNode.immutable = true;
};

// Add rootNodeListener on NODE_ROOT_ADD event
popoto.graph.on(popoto.graph.Events.NODE_ROOT_ADD, rootNodeListener);

在此处查看实时示例: http://www.popotojs.com/live/simple-graph/selected-with-event.html

或者从1.1.2开始,您可以使用预定义图形(包括选定值)作为启动函数的参数启动Popoto,如下所示:

popoto.start({
    label: "Person",
    rel: [
        {
            label: "ACTED_IN",
            node: {
                label: "Movie",
                value: {
                    title: "The Matrix"
                }
            }
        },
        {
            label: "DIRECTED",
            node: {
                label: "Movie"
            }
        },
        {
            label: "PRODUCED",
            node: {
                label: "Movie"
            }
        },
        {
            label: "WROTE",
            node: {
                label: "Movie"
            }
        }
    ]
});

此处的实例:http://www.popotojs.com/live/results/predefined-data.html

这里有一个更复杂的问题:http://www.popotojs.com/live/save/index.html