【发布时间】:2012-10-28 15:10:09
【问题描述】:
如何向 gremlin 请求具有我选择的属性的有限节点列表?
类似:
g.V. 10 nodes with nodeType=="User", return only id, name and email.
【问题讨论】:
如何向 gremlin 请求具有我选择的属性的有限节点列表?
类似:
g.V. 10 nodes with nodeType=="User", return only id, name and email.
【问题讨论】:
为了速度,请过滤{it.getProperty('nodeType').equals('User')}...
【讨论】:
使用 TinkerPop 3+,那就是:
g.V().hasLabel('user').limit(10).valueMap(true, 'name', 'email')
调用valueMap(true) 会返回遍历的图形元素的id 和label。
为了提高性能,现在建议避免使用 lambda 并使用 Gremlin 步骤。
【讨论】:
如果您使用的是 Tinkerpop 3,并且您正在搜索的“类型”定义为节点标签,那么您可以执行以下操作:
g.V.hasLabel('User')[0..10].valueMap.select('id','name','e-mail')
还请注意,如果您想要 10 个节点而不是 [0..9],我认为您需要指定 [0..10]
但是,我完全听从 Marko 对性能的回答,因为他了解内部结构。我只是喜欢 hasLabel() 的干净感觉。
【讨论】:
g.V.filter{it.nodeType=='User'}[0..9].transform(){it.id + ' ' + it.name + ' ' + it.email}
【讨论】: