neomodel: как открыть индекс для объектов StructuredNode
Как в Neomodel можно совместно использовать уникальный индекс по объектам узла, не создавая экземпляры отдельных объектов для хранения только проиндексированных данных? Я хотел бы найти объект на основе запроса индекса, например, так:
...
mynode = BaseObject.index.get(uid=uid_of_Type1Object)
# mynode is now of type `Type1Object`
с
class BaseObject(StructuredNode):
uid = StringProperty(unique_index=True)
...
class Type1Object(BaseObject):
...
def assign_uid(self, guid):
# I may need tweaking of uid generator
# on subclass level
self.uid = guid
class Type2Object(BaseObject):
...
def assign_uid(self, guid):
self.uid = guid
1 ответ
Решение
В https://github.com/robinedwards/neomodel/commit/1f1b43377b25cd4d41e17ce2b7f9ca1a1643edea была добавлена поддержка пользовательского индекса для подкласса StructuredNode
class BaseObject(StructuredNode):
__index__ = 'MyBaseIndex'
uid = StringProperty(unique_index=True)
...
class Type1Object(BaseObject):
__index__ = 'MyBaseIndex'
...
def assign_uid(self, guid):
# I may need tweaking of uid generator
# on subclass level
self.uid = guid
class Type2Object(BaseObject):
__index__ = 'MyBaseIndex'
...
def assign_uid(self, guid):
self.uid = guid