Tag Archives: Neo4j

Integration Testing with Neo4j using C#

via Integration Testing with Neo4j using C# [Community Post] – Neo4j Graph Database.

Unlike prototypical unit testing which is designed to focus on small units of isolated code, integration testing is a type of testing which is typically designed to test interactions between two or more interconnected parts of a software system.

A common area where integration testing yields high return on effort is the interaction point between an application and a database backend. This type of integration testing allows for verification of the expected behavior of queries issued to the database as well as the subsequent transformation of that dataset into domain models or other data structures in code.

While NoSQL C# projects are increasingly common, it is still the case that most enterprise applications model data using traditional SQL databases. Therefore, it can be difficult to find good examples and guidelines for building integration tests1 using NoSQL solutions.

However, whether you’re using SQL or NoSQL databases, writing repeatable integration tests are almost always dependant on leveraging database transactions as this allows for data created during integration testing to be treated as transient data that is automatically cleaned up upon completion of the test case.

Of course, having transactional capabilities is a must in almost all applications, but it is particularly useful for developers when creating integration tests.

Optimizing Neo4j Cypher queries

via Optimizing Neo4j Cypher queries.

Last week, I spent a good number of hours trying to optimize around 20 Cypher queries that were performing disastrously(36866ms to 155575ms) with data from a live system. After some trial and error, and a lot of input from Michael, I was able to figure out generally what needed to be done to the queries to make them perform better- at the end of this, the worst performing query dropped to 521ms on a cold graph and 1GB heap space (and that query has optional paths- not quite sure how to improve that), and the remaining were all under 50ms- quite a large improvement from original numbers.

Neo4j: Loading JSON documents with Cypher

via Neo4j: Loading JSON documents with Cypher at Mark Needham.

One of the most commonly asked questions I get asked is how to load JSON documents into Neo4j and although Cypher doesn’t have a ‘LOAD JSON’ command we can still get JSON data into the graph.

Michael shows how to do this from various languages in this blog post and I recently wanted to load a JSON document that I generated from Chicago crime types.

Neo4j 2.2 Authentication and adding extra users

Token-based authentication is new in Neo4j 2.2, but how does it work? The first thing to know is that it is enabled by default in conf/neo4j-server.properties by: # Require (or disable the requirement of) auth to access Neo4j dbms.security.auth_enabled=true


How SQL GROUP BY Should Have Been Designed – Like Neo4j’s Implicit GROUP BY

In the recent past, we’ve explained the syntactic implications of the SQL GROUP BY clause. If you haven’t already, you should read our article “Do You Really Understand SQL’s GROUP BY and HAVING clauses?“. In essence, adding a GROUP BY clause to your query transforms your query on very implicit levels. The following reminder summarises […]


Setting up MonoDevelop MVC Project to work with Neo4j

I have settled on learning Neo4j and how to use .NET to interact with it. When I opened MonoDevelop on my Ubuntu machine and setup an MVC project, there were a few adjustments I needed to make. First you’ll notice that you can install package updates. Have a go at that by right clicking Packages […]


Neo4j – First Steps | Installation | Example – Basic Queries

Neo4j —– Graph Data base.. download : ———- URL     : http://neo4j.com/download/ package  : neo4j-community-2.3.0-M01-unix.tar.gz unZip : ——- tar -xf neo4j-community-2.3.0-M01-unix.tar.gz Change config values : ———————- change server port values as per your needs cat conf/neo4j-server.properties | grep port #org.neo4j.server.webserver.port=7474   # —- default port org.neo4j.server.webserver.port=7475    # —- changed by me # Turn https-support on/off # […]