Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
12-20-2020 08:25 PM
Using this tutorial as inspiration I have the following fabric config (real db names & IPs changed):
- NEO4J_fabric_database_name=fabric
# db1 (local)
- NEO4J_fabric_graph_0_uri=neo4j://localhost:7687
- NEO4J_fabric_graph_0_name=db1
- NEO4J_fabric_graph_0_database=domain1
# db2 (local)
- NEO4J_fabric_graph_1_uri=neo4j://localhost:7687
- NEO4J_fabric_graph_1_name=db2
- NEO4J_fabric_graph_1_database=domain2
# db3 (remote)
- NEO4J_fabric_graph_2_uri=neo4j://123.456.789:7687
- NEO4J_fabric_graph_2_name=db3
- NEO4J_fabric_graph_2_database=domain3
When the server has started, I'm able to confirm 3 dbs in the fabric catalog:
RETURN fabric.graphIds()
---
[1,0,2]
And any of the three dbs can be individually accessed, e.g:
USE fabric.db1
MATCH (p:Post)
RETURN count(p)
---
2520
But if I try and cycle through all dbs in the catalog in a single query, as shown in the tutorial, this error is generated:
UNWIND fabric.graphIds() as graphId
CALL {
USE fabric.graph(graphId)
MATCH (p:Post)
RETURN count(p) as postCount
}
RETURN postCount
---
Dynamic graph lookup not allowed here. This feature is only available in a Fabric database
Attempted to access graph fabric.graph(graphId)
"USE fabric.graph(graphId)"
Running Neo4j Enterprise 4.1.
12-21-2020 05:08 PM
My guess (as an Intermediate-level neo4j user) is you're misusing the USE
statement.
graphId is actually a list of IDs (created by UNWIND
), which I don't think USE
will be happy with.
I think you need to use the FOREACH
to loop on each GraphId so that the USE will get just one at a time,
But that's my guess.... I could be wrong... I hope that helps.
09-08-2021 08:05 AM
Hi @terryfranklin82 and anyone else who experiences the same issue,
I had the same problem when running similar queries from my Jupyter notebook against a docker hosted Neo4j instance hosting my virtual fabric database. The issue was, when I connected to Neo4j, the default database is set to 'neo4j' and not the virtual fabric database. What I did to resolve the issue was adding NEO4J_dbms_default__database: <fabric-name>
to the environment variable of the fabric container. Restarted all my containers and dynamic graph lookup was finally allowed!
Kind regards,
Dion
All the sessions of the conference are now available online