Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在带有Gremlin的valueMap中指定要忽略的属性?_Gremlin_Tinkerpop - Fatal编程技术网

如何在带有Gremlin的valueMap中指定要忽略的属性?

如何在带有Gremlin的valueMap中指定要忽略的属性?,gremlin,tinkerpop,Gremlin,Tinkerpop,我的客户vertex有4个属性。如果我需要这些属性的映射表示,我可以通过执行 g.V('customerId').valueMap('firstName', 'middleName', 'lastName', 'age') 但是,如果我需要地图中除年龄以外的所有属性,有没有办法只指定被忽略属性的列表?差不多 g.V('customerId').valueMap(not('age')) 我希望避免指定所有必需的属性。它没有内置步骤 可以通过展开每个贴图、过滤不需要的属性键并重新组合来实现此目标

我的客户vertex有4个属性。如果我需要这些属性的映射表示,我可以通过执行

g.V('customerId').valueMap('firstName', 'middleName', 'lastName', 'age')
但是,如果我需要地图中除年龄以外的所有属性,有没有办法只指定被忽略属性的列表?差不多

g.V('customerId').valueMap(not('age'))

我希望避免指定所有必需的属性。

它没有内置步骤

可以通过展开每个贴图、过滤不需要的属性键并重新组合来实现此目标:

g.V().valueMap().local(unfold()
    .where(select(keys).is(without(["age","prop1","prop2"])))
    .group().by(select(keys)).by(select(values)))

它没有内置的步骤

可以通过展开每个贴图、过滤不需要的属性键并重新组合来实现此目标:

g.V().valueMap().local(unfold()
    .where(select(keys).is(without(["age","prop1","prop2"])))
    .group().by(select(keys)).by(select(values)))

Kfir提供的答案是好的。在我看来,另一种方法更直接一些,因为您不需要先创建地图,然后将其解构以进行过滤,然后再将其重新组合在一起:

gremlin> g.V().map(properties().hasKey(without('age')).group().by(key()).by(value()))
==>[name:marko]
==>[name:vadas]
==>[name:lop,lang:java]
==>[name:josh]
==>[name:ripple,lang:java]
==>[name:peter]

这种方法只是将顶点分解为属性,过滤不需要的关键点,然后从中构造贴图。

Kfir提供的答案很好。在我看来,另一种方法更直接一些,因为您不需要先创建地图,然后将其解构以进行过滤,然后再将其重新组合在一起:

gremlin> g.V().map(properties().hasKey(without('age')).group().by(key()).by(value()))
==>[name:marko]
==>[name:vadas]
==>[name:lop,lang:java]
==>[name:josh]
==>[name:ripple,lang:java]
==>[name:peter]

这种方法只是将顶点分解为属性,过滤不需要的关键点,然后从中构造贴图。

谢谢,伙计!这真是一个帮助!你能推荐一个好的教程或材料来研究和理解遍历/小精灵数据结构是如何工作的吗?除了TinkerPop所有步骤的文档外,你还有Kelvin Lawrence的书,这本书非常全面:谢谢,伙计!这真是一个帮助!你能推荐一个好的教程或材料来研究和理解遍历/小精灵数据结构是如何工作的吗?除了TinkerPop所有步骤的文档外,你还有Kelvin Lawrence的书,这本书非常全面:谢谢Stephan的建议。我喜欢它更优化,除了大多数时候你还需要顶点ID,它可以用valueMaptrue检索,但不能用属性AFAIK.true和good point检索。虽然我认为在我需要id的情况下,我可能会坚持这种方法,只在id中进行联合,以避免地图的破坏/构造。谢谢Stephan的建议。我喜欢它更优化,除了大多数时候你还需要顶点ID,它可以用valueMaptrue检索,但不能用属性AFAIK.true和good point检索。虽然我认为在我需要id的情况下,我可能会坚持这种方法,只在id中进行联合,以避免地图的破坏/构造。