通过Mogwai从TitanDB中检索顶点子集

时间:2016-02-26 23:09:40

标签: python titan

假设我有以下Vertex类定义:

from mogwai.connection import setup
from mogwai.models import Vertex, Edge
from mogwai import properties

setup('localhost')

class Food(Vertex):
    name = properties.String(default='banana')
    taste = properties.String(default='sweet')

假设我在不同食物的数据库中有一堆顶点。我如何只检索具有某种味道的顶点?

我知道一种方法就是:

ingredients = [food for food in Food.all() if food.taste=='sweet']

但这似乎效率很低,因为你将查询所有顶点,然后在python中过滤它们。我查看了文档,mogwai源代码,并学习了如何进行简单的Gremlin查询,但我是初学者来绘制数据库,并且连接点有点困难。

1 个答案:

答案 0 :(得分:0)

不确定为什么我没有看到如何定义all(),但学会了如何从该函数加载查询结果。所以这是有效的:

from mogwai.connection import execute_query

flavor_type = 'sweet'
rs = execute_query("g.V.has('food_taste','{}').toList()".format(flavor_type))
objects = []
for r in rs:
    objects += Food.deserialize(r)
print(objects)