【问题标题】:Gremlin Day Of the Week for a given Date给定日期的 Gremlin 星期几
【发布时间】:2018-09-02 17:48:49
【问题描述】:

我是图形数据库和 Gremlin 图形遍历语言的新手。我有一个要求,运行图形查询的客户端将传递一个日期。对于给定的日期,我需要首先找到星期几并查询顶点/边的属性。注意:星期几将是我的图表顶点中的一个属性键。 例如,顶点(零售店)- 顶点的属性将反映商店是开门还是关门。 [太阳:关闭,周一:开放,周二:开放,周三:开放,周四:开放,周五:开放,周六:开放]。我也知道有另一种方法可以通过要求客户传递日期和星期几来解决这个问题 - 我想检查执行这个 gremlin 的可行性,因为我可能有使用案例来根据传递的日期计算新日期和然后找到星期几。欣赏思想。

【问题讨论】:

    标签: gremlin


    【解决方案1】:

    Gremlin 作为一种语言不具备从日期本地计算星期几的能力,因此您必须在 Gremlin 本身内使用 lambda 来执行此操作(它并不总是与所有启用 TinkerPop 的系统)。我认为为此目的使用 lambda 可能会导致看起来相当复杂的 Gremlin,因为您基本上是在构建一个动态属性键,当可以更简单地处理代码时,它会混淆代码的可读性。

    我认为您可以“更简单”地使用您的本地编程语言预先计算星期几,然后在 Gremlin 中使用该值。在 Java 中,这可能看起来像这样(未经测试):

    public String getStoreStatus(Date d, GraphTraversalSource g) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        String dayOfWeek = cal.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());
    
        return g.V().has('store','name','Target').values(dayOfWeek).next();
    }
    

    【讨论】:

    • 谢谢,让我试试这个然后回来,回复与我目前的发现一致。
    猜你喜欢
    • 2017-03-23
    • 2021-06-29
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 2016-10-19
    • 2015-10-10
    相关资源
    最近更新 更多