3

私は neo4j データベースと django-neomodel から使用しています。ユーザー向けに次のシステムを実装し、ユーザー向けにこのモデルを作成したいと考えています。

class UserNode(StructuredNode):
    user_id = IntegerProperty(required=True, index=True)
    follow = RelationshipTo('UserNode','FOLLOW')

    def get_followers(self):
        results, metadata = self.cypher("START a=node({self}) MATCH a<-[:FOLLOW]-(b) RETURN b");
        return [self.__class__.inflate(row[0]) for row in results]

    def get_following(self):
        results, metadata = self.cypher("START a=node({self}) MATCH b-[:FOLLOW]->(a) RETURN b");
        return [self.__class__.inflate(row[0]) for row in results]

    def follow_person(self, user_id):
        import datetime
        from django.utils.timezone import utc

        followed_user = self.index.get(user_id=user_id)
        self.follow.connect(followed_user, {'time': str(datetime.datetime.utcnow().replace(tzinfo=utc))})
        self.save()
        followed_user.save()

システムをフォローするための私の UserNode モデルは良いモデルだと思いますか?

このモデルに問題が発生しました! このコードを実行すると:

a = UserNode.index.get(user_id=200)
b = UserNode.index.get(user_id=201)
c = UserNode.index.get(user_id=202)

a.follow_person(201)
b.follow_person(200)

print a.get_followers(), a.get_following()

出力は 2 つの空のリストです。なぜ?

4

1 に答える 1