A Neo4j Object Graph Mapper (OGM) driver for Laravel, enabling Eloquent-style models and relationships with a graph database.
NeoEloquent is an Eloquent driver for Laravel that integrates Neo4j as a graph database backend. It allows developers to use Laravel's Eloquent ORM syntax to interact with Neo4j, making it easier to build applications that leverage graph data structures. The project bridges the gap between Laravel's elegant ORM and the power of graph databases, enabling developers to think in graphs while writing familiar Eloquent code.
Laravel developers who need to work with graph data structures and want to use Neo4j as their database backend while maintaining the Eloquent ORM syntax they are accustomed to.
Developers choose NeoEloquent because it provides a seamless integration of Neo4j into Laravel, allowing them to use Eloquent models, relationships, and migrations with a graph database. Its unique selling point is the ability to treat graph relationships as first-class entities with directional edges and attributes, alongside advanced Neo4j-specific features like the CreateWith method for efficient graph construction.
The Neo4j OGM for Laravel
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows developers to use familiar Laravel Eloquent syntax with Neo4j, including models, relationships, and query builders, as demonstrated in the Models and Relationships sections.
Supports graph-specific operations like directional edges, edge attributes, and Neo4j aggregates such as percentile and standard deviation, detailed in the Edges and Aggregates sections.
The CreateWith method enables creating multiple related nodes and edges in a single Cypher query for performance, explained in the 'Only in Neo' section with examples.
Provides Laravel-style migrations and schema management for Neo4j, including indexing and constraints via commands like neo4j:migrate, covered in the Migration and Schema sections.
Does not support SQL joins or pivot tables, which can hinder migration from relational databases and limit functionality for complex relational queries, as warned in the 'Avoid' section.
Requires manual configuration steps like modifying composer.json, creating a labels folder, and setting up connections, adding overhead compared to standard Eloquent, as seen in Installation and Configuration.
Prohibits nested arrays and objects in models due to Neo4j's property storage constraints, forcing data flattening or alternative approaches, noted in the 'Avoid' section.
Tightly coupled with Laravel and requires a running Neo4j instance, leading to dependency on specific technologies and potential compatibility issues with other tools or databases.