【问题标题】:Retrieving a subset of vertices from TitanDB through Mogwai通过 Mogwai 从 TitanDB 检索顶点子集
【发布时间】:2016-06-10 08:35:17
【问题描述】:

假设我有以下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 查询,但我是图形 DB 的初学者,连接点有点困难。

【问题讨论】:

    标签: python titan


    【解决方案1】:

    不知道为什么我没有想到 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多