Python 通过Mogwai从TitanDB检索顶点子集
假设我有以下Python 通过Mogwai从TitanDB检索顶点子集,python,titan,Python,Titan,假设我有以下顶点类定义: 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
顶点
类定义:
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查询,但我是一个图表DBs的初学者,要把这些点连接起来有点困难。我不知道为什么我没有想到如何定义
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)
不知道为什么我没有想到如何定义
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)