function get_all_dbo_houses
Queries a Neo4j graph database to retrieve all nodes labeled as 'dbo_Houses' with a configurable limit on the number of results returned.
/tf/active/vicechatdev/neo4j_schema/neo4j_python_snippets.py
880 - 887
simple
Purpose
This function is designed to fetch house-related nodes from a Neo4j graph database, specifically nodes with the 'dbo_Houses' label. It's useful for retrieving house data in applications that use graph databases to model relationships between entities. The function provides a simple interface to query the database with a customizable result limit, making it suitable for pagination, data exploration, or bulk data retrieval scenarios.
Source Code
def get_all_dbo_houses(limit=100):
"""Return dbo_Houses nodes (limited to 25)"""
query = """
MATCH (n:dbo_Houses)
RETURN n
LIMIT $limit
"""
return run_query(query, {"limit": limit})
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
limit |
- | 100 | positional_or_keyword |
Parameter Details
limit: An integer that specifies the maximum number of dbo_Houses nodes to return from the query. Default value is 100. Note: The docstring incorrectly states the limit is 25, but the actual default is 100. This parameter helps control memory usage and query performance when dealing with large datasets.
Return Value
Returns the result of the run_query function, which typically contains a list or collection of Neo4j node objects representing dbo_Houses entities. The exact return type depends on the implementation of run_query, but it likely returns a list of dictionaries or Neo4j Record objects containing the properties of each house node. The number of results will not exceed the specified limit parameter.
Dependencies
neo4j
Required Imports
from neo4j import GraphDatabase
Usage Example
from neo4j import GraphDatabase
# Assuming run_query is defined elsewhere
def run_query(query, params):
driver = GraphDatabase.driver('bolt://localhost:7687', auth=('neo4j', 'password'))
with driver.session() as session:
result = session.run(query, params)
return [record['n'] for record in result]
driver.close()
# Get default 100 houses
houses = get_all_dbo_houses()
print(f'Retrieved {len(houses)} houses')
# Get only 10 houses
houses_limited = get_all_dbo_houses(limit=10)
for house in houses_limited:
print(house)
Best Practices
- The docstring contains incorrect information (states limit is 25 but default is 100) - this should be corrected for clarity
- Ensure the run_query function properly handles database connections and closes them to avoid connection leaks
- Consider adding error handling for database connection failures or query errors
- The limit parameter should be validated to ensure it's a positive integer
- For production use, consider adding pagination support (offset parameter) to handle large datasets efficiently
- Add type hints to improve code clarity: def get_all_dbo_houses(limit: int = 100) -> list
- Consider making the node label ('dbo_Houses') a parameter for better reusability
- Ensure proper authentication and connection pooling are configured in the run_query function
Similar Components
AI-powered semantic similarity - components with related functionality:
-
function get_all_dbo_concepthouses 87.9% similar
-
function get_dbo_houses_by_id 82.9% similar
-
function get_dbo_concepthouses_with_references_houses_dbo_houses 81.0% similar
-
function get_dbo_flocks_with_references_houses_dbo_houses 78.8% similar
-
function get_dbo_treatments_with_references_houses_dbo_houses 77.7% similar