У меня есть следующие модели neo4j с отношением Документ и Текст, где несколько документов связаны с документом:
class Document(StructuredNode):
"""Document Neo4J model for documents"""
document_id = IntegerProperty(required = True)
class Text(StructuredNode):
"""Text model for managing texts"""
# Inherent text properties
text_id = IntegerProperty(required = True)
text = StringProperty(required = True)
document = RelationshipTo('Document', "PARENT")
Для того, чтобы получить ВСЕ объекты Text, связанные с указанным документом c Я использую обход следующим образом:
def get_all_texts_by_document_id(document_id):
document = Document.nodes.get_or_none(document_id = document_id)
definition = dict(node_class = Text, direction = EITHER, relation_type = "PARENT", model = None)
document_to_text_traversal = Traversal(document, Text.__label__, definition)
texts = document_to_text_traversal.all()
print(f"Returning {len(texts)} texts for document_id {document_id}")
return texts
Я хочу получить текст с указанным c текстовым идентификатором, и в настоящее время я выполняю итерацию с условием if в списке всех текстов, полученных с использованием вышеуказанного function.
Существует ли встроенный метод / лучший способ фильтрации на основе text_id после завершения обхода?