neo4j,neo4jclient , In Neo4J, how to retrieve nodes, along with additional information about if they are connected or not to a specific node


In Neo4J, how to retrieve nodes, along with additional information about if they are connected or not to a specific node

Question:

Tag: neo4j,neo4jclient

I have nodes with Product Information (P). Every time a user likes the product, relationship [L] is created connecting user (U)->[L]->[P]

Now I need to retrieve a set of Product nodes based on specific condition, but also need to return additional information that whether they are liked by a specific user or not.

So if the Product Structure is like

{ Product Name, Price }

If lets say, 1 out of the 3 products in question is liked by user X, the result set I need may look something like this

[{Product1, 29.00, true}, {Product2, 39.00, false}, {Product3, 25.00, false}]

Here true refers to the fact that user has liked Product1 and has not liked Product2.

I am not sure how to write such a query that includes this additional information of whether the returned nodes are liked or not


Answer:

I think something like this will suit your needs.

Match all the products. You will want to scope this match down in some way.

Optionally match user likes per product.

Return collection of maps that contain name, price and like status.

match (p:Product)
optional match (u:User)-[:LIKES]->p
with {product:p.name, price:p.price, like: case when u is null then false else true end} as Product_Detail
return collect(Product_Detail)

Related:


How do I get the Neo4J primary key back in a query result?


neo4j,cypher
I'm using the rest api, and cypher. How do I get back the primary key when doing a query like this for a node with some id that I have assigned to it? {"statements" : [ {"statement" : "MATCH (n) where n.id = { id } RETURN n", "parameters" :...

Cyper - odd error when creating relationship


neo4j,cypher
I've got the following query, which responds with the very cryptic error message of "Invalid input 'H': expected 'i/I' (line 2, column 2)" Here's the query: CREATE UNIQUE (c:AccountCharge)-[:ACCOUNT_CHARGED]->(a:Account) WHERE (a.ID = "a7f7def6-8f2b-4b21-bfac-dab2f6e6eaae") AND (c.ID = "666b1865-e29d-455b-abb0-50d679952543") Both the nodes exist, and I can't see where there's a break anywhere,...

Global match regular expression with Neo4j Cypher query


regex,neo4j,cypher
I am searching in Neo4j using a regular expression. I would like this search to be global. As it stands, the search will only find words that start with inputted letters in the regular expression: MATCH (a) WHERE a.name =~ '(?i)bob.+' RETURN a.name So it will find the name Bob...

Add a relationship Neo4j based upon a condition


neo4j
I have 2 node Labels : Account , Transactions. MATCH (n:Account) RETURN n returns me 4 accounts with this property's: accountName RAHUL RAINA id 16294736 accountName SAVINGS ACCOUNT - RES id 16294732 accountName VISA GOLD id 16294492 accountName SBCHQ-GEN-PUB-IND-NONRURAL-INR id 16294488 Transactions is like this : MATCH (n:Transaction) RETURN n...

case insensitive search for labels


neo4j,cypher
Why this code doesn't work MATCH (n) WHERE labels(n)=~ '(?i).*SUBSTRING.*' RETURN distinct labels(n) Type mismatch: expected String but was Collection (line 1, column 17 (offset: 16)) But this does match n-[r]-() where type(r)=~ '(?i).*SUBSTRING.*' return distinct type(r) ...

Class atributes not updating [node.js - express ]


javascript,node.js,class,express,neo4j
I have some troubles with a .js Object's atribute which is not updating when i ask it to. I'm new in the javascript world, so i hope my issue won't be tricky. First of all, this is a part of my Node class : Node = function (label, vals, db,...

Symbols within a Neo4j case-insensitive regex


regex,neo4j,cypher
I'm storing e-mail addresses within some user nodes that I'm trying to match against, however the (?i) case-insensitive option doesn't appear to work when a + is added in the mail address. I use these to test, for example [email protected] Setting up test nodes: CREATE (uWithoutSymbol:USER { email: '[email protected]' })...

End UNWIND statement in a Cypher Query


neo4j,cypher
If I have a cypher query that unwinds a parameter, everything after that portion of the query is called x number of times of the unwind. I'd like to figure out a way to end the unwind and continue with other things. MATCH (thing:Thing) UNWIND { names } AS name...

find neo4j libraries for java api


java,neo4j
I want to use neo4j libraries to connect my java app with neo4j database and follow the tutorials from http://neo4j.com/docs/stable/tutorials-java-embedded-hello-world.html. At the beginning I copied the sources code from https://github.com/neo4j/neo4j/blob/2.2.2/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java and netbeans complains about missing libraries like: import org.neo4j.graphdb.Direction; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; import...

WITH is required between MERGE and MATCH


neo4j
I am trying to setup a graph database, I have two csv files . I have successfully setup on of the csv's, the first one works fine. First CSV : LOAD CSV WITH HEADERS FROM "file:///C:/Users/rraina/Desktop/acc.csv" AS csvLine MERGE (providerName:ProviderName { name: csvLine.providerName }) MERGE (container:Container { name: csvLine.CONTAINER })...

Neo4j Aggregate Multiple Lines into a Map


neo4j,cypher,aggregate
I have the following Cypher script: MATCH (sy:SchoolYear)<-[:TERM_OF*]-()<-[:DAY_OF]-(d:Day) WHERE sy.year = 2015 OPTIONAL MATCH (d)<-[:START]-(e:Enrollment)-[:AT]->(s:School) RETURN d.date, s.abbreviation, count(e) ORDER BY d.date This gives me all of the dates in the range that I want and returns number of students that have enrolled for each school for that date, or...

Understanding Options for Building TimeTree in Neo4


neo4j,graphaware
Is it possible to construct something like GraphAware's TimeTree using Neo4j's CLI, GraphAware's importer, Michael Hunger's batch import, or with py2neo? It would be optimal to be able to do this using Neo4j's CLI (in terms of set up). I want to be able to search for a certain kind...

Neo4j unique IDs by tree with root node counter?


neo4j,uniqueidentifier
Is using a tree with a counter on the root node, to be referenced and incremented when creating new nodes, a viable way of managing unique IDs in Neo4j? In a previous question on performance on this forum (Neo4j merge performance VS create/set), the approach was described, and it occurred...

Is it possible to connect a JPA implementation to a Neo4j specific version?


jpa,neo4j,datanucleus,kundera,hibernate-ogm
I have a Java project that use an embedded Neo4j database (NoSQL), version 2.0.0. I need to migrate this data for a traditional relational db (SQL). For this job, I thought that using an implementation of JPA could help. I found these three projects: Hibernate OGM DataNucleus Kundera But I...

Parsing Neo4j ExecutionResult dumptoString in java


java,neo4j
I am using Neo4j graph database and the Neo4j Cypher api of java to get the query result.A dump to string method will give the execution result in the string format. GraphDatabaseFactory graphDbFactory = new GraphDatabaseFactory(); GraphDatabaseService graphDb = graphDbFactory.newEmbeddedDatabase("C:/TPNeo4jDB"); ExecutionEngine execEngine = new ExecutionEngine(graphDb); ExecutionResult execResult = execEngine.execute("MATCH (java:JAVA)...

Neo4J IndexProvider is deprecated


spring,neo4j,spring-boot,spring-data-neo4j
The project https://github.com/neo4j-contrib/developer-resources/tree/gh-pages/language-guides/java/spring-data-neo4j produces a warning: Class 'org.springframework.data.neo4j.support.index.IndexProvider' is marked deprecated I use Spring Boot. The managed version for spring-data-neo4j is 3.2.2.RELEASE Does anybody know how this deprecation can be resolved?

neo4j search nodes, relationships contains *string*


neo4j,cypher
Code from LIKE clause in CYPHER Query MATCH (n) WHERE n.name =~ '(?i).*SUBSTRING.*' RETURN n; results in Expected 1 to be a java.lang.String, but it was a java.lang.Long (cause of =~) Is there a way to for strings case insensitive in all possible places?...

Neo4j: configure legacy index with cypher or property file


indexing,neo4j
I am using Neo4j-server and I am trying to find a way to configure a legacy index either with cypher or with a property. So far to enable the legacy indexing I just uncommented the related line in neo4j.properties file. How can I apply some of the configurations listed here...

Are my Cypher statements 'overdone'


neo4j,py2neo
I am using py2neo with transactions. This means I am using the Cypher language. I am appending the textual Cypher statements to a transaction queue and submitting the contents of the queue in one shot with commit. It works fine. However, it is slow. I am getting about 100/nodes per...

Should we use the Neo4J internal id?


neo4j
We are currently working with a Neo4j database, and we need some kind of id to identify nodes. For example we have functions like CurrentUserHasAccess(NodeId) On other Stackoverflow posts I read that it's a bad idea to use the internal neo4j-identifier, because it can change over time. However I think...

Is it possible to use neo4j-reco with neo4j 1.9?


neo4j,recommendation-engine,graphaware
The title says pretty much all. I'm trying to use neo4j-reco by GraphAware on top of neo4j-1.9. However, I don't know if it is possible at this time.

No hello World output for Neo4j


java,eclipse,neo4j
I am just starting out with Neo4j and this is my first stackoverflow question! I tried to run the Hello-World example in Eclipse with the user library of Neo4j. ( https://github.com/neo4j/neo4j/blob/2.2.2/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java) I only changed the DB_PATH='data/graph.db' ( because in my neo4j-server.properties :org.neo4j.server.database.location=data/graph.db) The output I got in the console is:...

How to check if an ExecutionResult is empty in Neo4j


java,neo4j
I am executing a query in neo4j using java. I don't know how to check if the execution result is empty. Here is my code. String firstquery=" start n=node(*) match(b)-[relatedto]->(n) where b.value=\""+applicationName+"\" return n"; ExecutionResult execResult = execEngine.execute(firstquery); System.out.println("executing query"); String results = execResult.dumpToString(); System.out.println(results); Iterator<Node> n_column1 = execResult.columnAs( "n"...

How do I create a Neo4j relationship via the rails console?


ruby-on-rails,ruby,neo4j,neo4j.rb
I'm currently working through this tutorial and I'm stuck when it comes to creating relationships in the rails console. I've read through the Neo4jrb project documentation and a blog post on jayway.com but still can't figure it out. I've created a rails site and I want to create team nodes,...

Neo4j cypher query is too slow(too many dbhits) in bidirectional relationship


neo4j,cypher
Having the flowing data model: (Phone{phoneNumber})-[:CALL]-(Phone{phoneNumber}) (Person{personId})-[:KEEP]-(Phone{personId}) (Case{caseId})-[:INVOLVE]-(Person{personId}) all these three are using bidirectional relationship. And created index on phoneNumber/personId/caseId. User can input one or more strings which maybe represent as phoneNumber/ caseId/personId to query for their relationships(NOT consider direction and relationship depth can be 1 to 4). Here is...

Large Neo4j graph not showing up


database,graph,neo4j,cypher,graph-databases
I created a large neo4j graph connecting users to the videos they watch like user -> video in a social graph or network type of graph. There are about 9000 user nodes and 20000 video nodes. If I try: MATCH (u)-[:VIEW]->(v) RETURN u,v The graph says "Displaying 300000 nodes, 0...

Left join in Neo4j does not seem to work


neo4j,cypher
This is my graph I am trying to make a query that tells me if the connections from a node of type T exist to nodes of type M. I heard that OPTIONAL MATCH is equivalent to SQL Left Join, but it does not include the the missing link. Here...

load csv in neo4j got java.lang.OutOfMemoryError: GC overhead limit exceeded exception


neo4j,cypher
I tried to load csv data into embedded neo4j database(v2.1.7、on windows). The csv file has 1,000,000 rows(1 Million). And data model is simple too. just as following: csv data "num1","num2","datatime" "13931345724","18409958023","2014-12-31 12:00:00" "13931345724","13710622859","2014-12-31 12:00:00" "13931345724","18919875049","2014-12-31 12:00:00" "13931345724","13460873081","2014-12-31 12:00:00" ... loading cypher sql USING PERIODIC COMMIT 5000 LOAD CSV FROM 'file:C:/tmpFiles/calls100w.csv'...

Neo4J - select records with max count


neo4j
I struggle to write a query, that will return info about most played tracks for every user. I go with something like this: MATCH (l:Listener)-[lo:LOGS]->(s:Scrobble)-[f:FEATURES]->(t:Track)<-[p:PERFORMS]-(a:Artist) with l,a,count(*) as numberOfScrobbles return l.name, a.title, numberOfScrobbles and get a list of values: User name - Artist name - Number of scrobbled tracks created...

How to add value in path Neo4j


neo4j
I want to add value path in neo4j graph such as (United States - Population - 2015) this path has value 320,970,000 and I want store in database This is what i want Can anyone help me? or any suggestion?...

Neo4J - Run dbinfo command from REST API


neo4j
I want to run the dbinfo -g "High Availability" command over the Neo4J API. Does such an endpoint exist?...

Authenticate to access the server with Java Neo4j Rest Api


java,rest,neo4j
I'm starting to use the Neo4j Rest Api but when I try to connect the server I get the following error : { "errors" : [ { "code" : "Neo.ClientError.Security.AuthorizationFailed", "message" : "No authorization header supplied." } ] } This error seems to be normal because I am not authenticating...

Neo4j 2.2.2 inconsistency problems


neo4j
I did an explicit upgrade of a Neo4j database from 2.1.6 to 2.2.2 a couple of days ago. Everything seemed fine at first but yesterday I started to get a lot of: Exception: System.AggregateException: One or more errors occurred. ---> Neo4jClient.NeoException: EntityNotFoundException: Relationship with id 93669 and enter codException: System.AggregateException:...

Limit the results of a union cypher query


neo4j,cypher
Let's say we have the example query from the documentation: MATCH (n:Actor) RETURN n.name AS name UNION MATCH (n:Movie) RETURN n.title AS name I know that if I do that: MATCH (n:Actor) RETURN n.name AS name LIMIT 5 UNION MATCH (n:Movie) RETURN n.title AS name LIMIT 5 I can reduce...

Find last node in unknown amount of relationships


neo4j,cypher
I can find last node like this MATCH p=(a)-->(b)-->(c) WHERE a.name='Object' AND c:Prime RETURN c But how i would find last node if i don't know how many relationships -->()-->() between two nodes? I am trying to find last Node name by the Lable name. Last node doesn't have any...

Finding Common Node for given two nodes in neo4j through java


java,neo4j
I am developing a Question Answering application using Neo4j in Java. For that I need to find intermediate nodes between given two nodes through any relationship. For Example given Graph: A - x -> C B - y -> C Therefore if given [A,B] nodes, the output should be [C],...

Neo4j 2.2.2 server does not start after db is generated via java code


java,neo4j,spring-data-neo4j
I am new to Neo4j. I am trying some application in Java using Neo4j 2.2.2 along with Spring Data. I am using spring-data-neo4j (2.2.2.RELEASE) to connect the Neo4j DB. I have successfully done all CRUD opertaions using repositories in Spring Data. But I am unable to open & view this...

Getting error org.neo4j.rest.graphdb.entity.RestNode cannot be cast to java.lang.Iterable


neo4j,spring-data-neo4j
I am trying to filter feeds which contains user actvitity. I am using @QueryResult object to retrieve the result. I need both the feeds and the relationship information of user Liked Feeds. But while retrieving the feeds getting error: org.neo4j.rest.graphdb.entity.RestNode cannot be cast to java.lang.Iterable. (I am using SDN 3.3.0.RELEASE...

neo4j Nodes Deleted (but not Actually)


neo4j,graph-databases
I would like to delete all the nodes of a certain label by executing match (P:ALabel) delete P; This returns the comment "No data returned." It also states how many Nodes deleted, and how long it took (5767 ms). However, the shell seems to stop responding after this, and I...

Neo4j 2.2.2 and wrong Cypher query


neo4j,cypher,spring-data-neo4j,graph-databases
In continue to this question Neo4j how to delete nodes recursively from some start node I have moved to Neo4j 2.2.2 and now have a problem with one Cypher query that works fine on a previous Neo4j 2.1.7 I use Spring Data Neo4J: @Query("MATCH (d:Decision) WHERE id(d) IN {decisionsIds} WITH...

localhost:7474/graphaware/changefeed/CFM gives 404


neo4j,graphaware
i am trying to track latest changes in neo4j in Server Mode so i followed this link https://github.com/graphaware/neo4j-changefeed as i see some extra node are added and here are changes about my db but http://localhost:7474/graphaware/changefeed/CFM gives me 404 i am using neo4j 2.2.2 and my neo4j.properties com.graphaware.runtime.enabled=true com.graphaware.module.CFM.1=com.graphaware.module.changefeed.ChangeFeedModuleBootstrapper com.graphaware.module.CFM.maxChanges=100 com.graphaware.module.CFM.pruneDelay=10000...

Inherited properties of related entities are not visible in spring-data-neo4j-rest


spring,neo4j,spring-data,spring-data-neo4j
I have three NodeEntities A, B, and C. A is the parent of B and C. C has a property of type Set. For all three entities I have also a PagingAndSortingRepository. The Spring Boot application is set up as in the example https://spring.io/guides/gs/accessing-neo4j-data-rest/. Now there is a strange thing:...

What is the most performant way to create the following MATCH statement and why?


neo4j,cypher
The question: What is the most performant way to create the following MATCH statement and why? The detailed problem: Let's say we have a Place node with a variable amount of properties and need to look up nodes from potentially billions of nodes by it's category. I'm trying to wrap...

number of connected nodes to specific nodes in a path


neo4j,cypher
I have a cypher query (below). It works but I was wondering if there's a more elegant way to write this. Based on a given starting node, the query tries to: Find the following pattern/motif: (inputko)-->(:cpd)-->(ko2:ko)-->(:cpd)-->(ko3:ko). Foreach the motifs/patterns found, find connected nodes with labels contigs, for the following nodes...

Assigning a label to a created node in Neo4jClient


c#,graph,neo4j,neo4jclient
I want to create some nodes of type Person and Books using Neo4jClient. To do that, I have class Person like this: Public Class Person { Public String Name; } To create node, I have written something like this: Var RefA = client.Create(new Person(){Name ="John"}); (Client -> GraphicClient) When I...

Cannot implicitly convert type from System.Collection.Generic.IEnumerable.MyClass to MyClass


c#,generics,neo4j,neo4jclient
Following is the code for which the error is being generated: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Neo4jClient; using Neo4jClient.Cypher; namespace ConsoleApplication1 { public class SNode { public int shelfid { get; set; } public int floorid { get; set; } } public class PathsResult<TNode> { public...

Multiple Nodes per Line in Neo4j Batch Import Tool


neo4j
Using Neo4j's Batch Import Tool, how can I create multiple nodes from a single row, and then attribute some properties to Node 1 and some to Node 2? This is an example from 29.3: movieId:ID,title,year:int,:LABEL tt0133093,"The Matrix",1999,Movie tt0234215,"The Matrix Reloaded",2003,Movie;Sequel tt0242653,"The Matrix Revolutions",2003,Movie;Sequel Is there a way to make it...

How to eliminate a path where exists a relationship outside of the path, but between nodes in the path?


neo4j
I have modified the 'vanilla' initial query in this console, and added one relationship type 'LOCKED' between the 'Morpheus' and 'Cypher' nodes. How can I modify the existing (first-run) query, which is a variable length path so that it no longer reaches the Agent Smith node due to the additional...