2016-01-15 3 views
4

Я использую драйвер RethinkDB Java и хотел вычислить Среднее отклонение для каждого значения определенного поля.Будет ли отображение в RethinkDB вычислять одно и то же несколько раз за одно значение?

Итак, я написал этот код:

public static ReqlExpr avgdev(ReqlExpr expr, String field) { 
     return expr.map(
       entry -> entry.g("parent_document").g(field).sub(expr.avg(row -> row.g("documents").g(field))) 
     ); 
    } 

Как вы можете видеть, среднее значение вычисленных несколько раз. Для таких вычислений RethinkDB автоматически убедится, что среднее значение вычисляется только один раз, или я должен вручную вычислить среднее значение один раз, а затем использовать его для вычисления отклонения?

Я прошу об этом, потому что шаблон дизайна, который я использую, может существенно измениться в этой ситуации.

ответ

2

RethinkDB сейчас не выполняет каких-либо общих подвыражений. Я бы рекомендовал разложить общее подвыражение с do (так что-то вроде expr.avg(...).do(avg -> expr.map(...))).

Смежные вопросы