Query operations
Result frames
There are a variety of ways to view data in Neo4j Browser. All queries that you run in the Cypher editor populate a reusable result frame. Query results are rendered as:
-
Visual graph — graph result frame.
-
Table — table result frame.
-
Meta data — RAW result frame.
You can switch between them in the top left corner of the result frame.
Graph result frame
The graph visualization functionality is designed to display a node-graph representation of the underlying data stored in the database in response to a given Cypher query. The visual representation of the graph is useful for determining areas of interest or assessing the current state and structure of the data.
A squiggly line anywhere in your query indicates a warning. This is most commonly caused by a query attempting to match a pattern not present in the graph. Hover over the underlined segment to see the explanation. |
Tips for navigating the graph view:
-
Use the controls in the bottom right corner of the frame to zoom in and out of the visualization. Additionally, you can zoom using trackpad zoom gestures or a mouse wheel in combination with a modifier key. (If you are in full-screen view, the modifier key is not needed to zoom.) On Mac, use
⌘ + scroll
and on Windows and Linux, useCtrl + scroll
to trigger zoom. You can also use the Fit to screen button to fit all query results into the view. -
Click a node or a relationship to view its properties. The nodes already have sensible captions assigned by the Browser, which auto-selects a property from the property list to use as a caption. To change what your graph looks like, see Styling.
-
Right-click a node to:
-
Dismiss/hide a node.
-
Expand/collapse child relationships.
-
Unpin the node to re-layout it. Alternatively, you can click the node and drag it around.
-
-
If you cannot see the whole graph or the results display too close together, you can adjust by moving the visual view and dragging nodes to rearrange them.
-
To move the view to see more parts of the graph, click an empty spot within the graph pane and drag it.
Styling
You can customize your graph query results directly in the result frame based on node labels and relationship types.
If you select a node label in the Overview, there are several styling options available:
-
Color — set the color for nodes of the selected label.
-
Size — set the size for nodes of the selected label.
-
Caption — set what should be displayed as the caption for nodes of the selected label.
If you select a relationship type in the Overview, there are several styling options available:
-
Color — set the color for relationships of the selected type.
-
Line width — set the line width for relationships of the selected type.
-
Caption — set what should be displayed as the caption for relationships of the selected type.
Query parameters
Query supports querying based on parameters. It allows the Cypher query planner to re-use your queries instead of parse and build new execution plans.
Parameters can be used for:
-
literals and expressions
-
node and relationship IDs
Parameters cannot be used for the following constructs, as these form part of the query structure that is compiled into a query plan:
-
property keys
-
relationship types
-
labels
Parameters may consist of letters and numbers and any combination of these but cannot start with a number or a currency symbol.
For more details on the Cypher parameters, see Cypher Manual → Parameters. |
Set query parameters
You can set a parameter to be sent with your queries by using the :param
command.
Using parameters rather than hard-coded values allows for the reuse of the query plan cache.
The :param name => 'Example'
command defines a parameter named name
, which will be sent along with your queries.
The right hand side of ⇒
is sent to the server and evaluated as Cypher with an implicit RETURN
in front.
This gives better type safety since some types (especially numbers) in JavaScript are hard to match with Neo4j:s type system.
To see the list of all currently set query parameters and their values, use the :params
command.
For more information on how to use the commands, see :help param
and :help params
.
:param x => 1
:param x => 1.0
:param x => "Example"
-
Map
:param obj1 => ({props: {productName: "Chai", productID:1}})
The obj1 parameter$obj1 = {"props": {"productName": "Chai", "productID": 1}}
Maps like
{x: 1, y: 2}
must be wrapped in parentheses({x: 1, y: 2})
. -
List
:param obj2 => [1, 2, 3, 4]
The obj2 parameter$obj2 = [1, 2, 3, 4]
:param name => 'Chai';
MATCH (p:Product)
WHERE p.productName = $name
RETURN p
You need to run the |
Set several parameters
You can set several parameters with the :params
command, this also clears all currently set parameters.
Integers are set to float with this style. |
:params {x: 1, y: 2.0, z: 'abc', d: null, e: true, f: false}
$x = 1.0
$y = 2.0
$z = "abc"
$d = null
$e = true
$f = false
Parameter assistance
If you run a query using parameters without first declaring them all, Queryreturns a ParameterMissing
error and lists the missing parameter(s).
You can click the provided template to populate the editor with the command for setting parameters and all you have to do is enter the value(s) for the missing parameter(s).
Since the result frame is reusable, once you have set your parameter(s), you can run the same Cypher query again without having to re-enter it.
The command offered with parameter assistance is always |