{"library":"neomodel","title":"neomodel Python OGM","description":"neomodel is an Object Graph Mapper (OGM) for the Neo4j graph database, providing a Pythonic way to interact with Neo4j. It allows developers to define graph models using Python classes, making it easier to store, retrieve, and query data in a Neo4j database. The current version is 6.1.0, with major releases approximately annually and patch releases as needed.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install neomodel"],"cli":null},"imports":["from neomodel import StructuredNode","from neomodel import StringProperty","from neomodel import IntegerProperty","from neomodel import RelationshipTo","from neomodel import RelationshipFrom","from neomodel import db","from neomodel import db"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom neomodel import StructuredNode, StringProperty, IntegerProperty, RelationshipTo, db\n\n# Configure connection to Neo4j\nNEO4J_URL = os.environ.get('NEO4J_BOLT_URL', 'bolt://neo4j:password@localhost:7687')\ndb.set_connection(NEO4J_URL)\n\n# Define a Node model\nclass Person(StructuredNode):\n    uid = StringProperty(unique_index=True)\n    name = StringProperty(index=True, required=True)\n    age = IntegerProperty(index=True, default=0)\n\n    # Define a relationship\n    friends = RelationshipTo('Person', 'FRIENDS_WITH')\n\n# Ensure labels and constraints are created in the database\nPerson.ensure_indexes()\n\n# Create and save nodes\njim = Person(uid='jim001', name='Jim', age=32).save()\npam = Person(uid='pam001', name='Pam', age=30).save()\n\n# Create a relationship\njim.friends.connect(pam)\n\n# Retrieve and query\nfound_jim = Person.nodes.get(uid='jim001')\nprint(f\"Found: {found_jim.name}, Age: {found_jim.age}\")\n\n# Get friends\nprint(f\"{found_jim.name} is friends with:\")\nfor friend in found_jim.friends.all():\n    print(f\"- {friend.name}\")\n\n# Clear database for example (use with caution in production)\n# db.cypher_query(\"MATCH (n) DETACH DELETE n\")\ndb.close_connection()","lang":"python","description":"This quickstart demonstrates how to connect to a Neo4j database, define a `StructuredNode` model with properties and relationships, create and save nodes, establish relationships, and query the graph using neomodel. It uses environment variables for secure connection details.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"5.5.3","pypi_latest":"6.1.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.2,"avg_import_s":0.91,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.71,"mem_mb":32,"disk_size":"26.7M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.54,"mem_mb":32,"disk_size":"27M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.82,"mem_mb":34,"disk_size":"30.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":0.76,"mem_mb":34,"disk_size":"30M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.19,"mem_mb":34,"disk_size":"21.5M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":1.26,"mem_mb":34,"disk_size":"22M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.23,"mem_mb":34.4,"disk_size":"21.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":1.16,"mem_mb":34.4,"disk_size":"22M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.78,"mem_mb":31.4,"disk_size":"25.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"neomodel","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.64,"mem_mb":31.4,"disk_size":"26M"}]}}