在gremlin中的样本方法内传递动态值不起作用

问题描述

我是格雷姆林的新手。我正在尝试根据某些条件获得一些随机顶点。但是,如果我在一些数学计算中使用样本方法,那么它将无法正常工作。但是,如果我给出整数值,它就可以正常工作。

以下查询工作正常:

export class DoughnutChart extends Component {
  render() {
    return (
      <Doughnut
        data={this.props.chartdataSet}
        options={{
          title: {
            display: true,text: this.props.title,fontSize: 18,},align:'start',legend: {
            display: true,position: "bottom",reverse:true,labels :{
              padding:10,BoxWidth:12
            }
          },}}
        height={220}

      />
    );
  }
}

以下查询无效:

g.V().hasLabel('Person').sample(1)

实际上,基于人数,我应该在样本方法内执行一些数学计算。预先感谢

解决方法

这是您要运行的Gremlin有趣的一点。我以前没见过有人尝试过。可悲的是,由于sample()没有接受Traversal作为参数,因此无法使用。只需要一个数字。除了在Gremlin之外进行计算外,没有解决此问题的方法,如果您需要根据查询中的数据选择样本量,这将无济于事。 sample()不是唯一以这种方式运行的步骤。我创建了TINKERPOP-2414来跟踪此问题。

,

您需要做的是:g.V().hasLabel('Person').sample(Math.round(4/2).intValue())

克里姆林宫运行在一个时髦的外壳中。如有疑问,可以检查如何将Long转换为Integer,以便可以使用以Integer作为参数的示例函数。