我如何向 gremlin 请求具有我选择的属性的有限节点列表?
就像是:
g.V. 10 nodes with nodeType=="User", return only id, name and email.
为了速度,请执行 filter{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,并且您正在搜索的“类型”定义为节点标签,那么您可以执行以下操作:
gVhasLabel('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}