RethinkDB Javascript для Java-запроса

Я довольно новичок в RethinkDB, поэтому мне удалось создать свой запрос в JavaScript, теперь проблема в том, чтобы перевести этот запрос на язык Java.

Может ли кто-нибудь с большим опытом помочь мне, пожалуйста?

r.db('reval').table('measurements').filter({ measurementId: 1478261131038})
              .update(function(measurement){
                  return r.branch(measurement.hasFields('movingObject'), 
                    { movingObject: measurement('movingObject').append({'x': 10, 'y': 40})},
                    { movingObject : [{'x': 0, 'y': 0}]}
                       )})

ОБНОВИТЬ:

После некоторой помощи от... я смог вставить первый объект массива. Проблема сейчас в том, когда я хочу продолжать вставлять больше элементов.

Я начну с этой записи:

{
"from": null ,
"id":  "c94aa215-a47e-4cd0-8f98-1b69d7e93a1d" ,
"measurementId": 1478273740811 ,
"movingObject": null,
"time": null ,
"userObject": null
}

После вызова этого запроса:

    MapObject myArray = new MapObject().with("x", 20).with("y", 80);
    MapObject myArray2 = new MapObject().with("x", 10).with("y", 40);

        HashMap run = r.db("reval").table("measurements")
                .filter(measurement -> measurement
                        .g("measurementId")
                        .eq(1478273740811L))
                .update(measurement ->
                    r.branch(
                            measurement.hasFields("movingObject"), 
                                r.hashMap("movingObject", measurement.g("movingObject").append(myArray)),
                                new MapObject().with("movingObject", myArray2)
                            )).run(connectionFactory.createConnection());

Результат был такой:

{
"from": null ,
"id":  "c94aa215-a47e-4cd0-8f98-1b69d7e93a1d" ,
"measurementId": 1478273740811 ,
"movingObject": {
"x": 10 ,
"y": 40
} ,
"time": null ,
"userObject": null
}

Теперь, когда я хочу вставить другой элемент в мой массив (в этом примере {{"x": 20, "y": 80}}) код Java выдает следующую ошибку:

{
deleted=0,
inserted=0,
unchanged=0,
replaced=0,
first_error=Expected type ARRAY but found OBJECT.,
errors=1,
skipped=0
}

Может ли кто-нибудь дать мне указатель на то, как решить эту проблему, потому что я думаю, что мы очень близки к решению.

1 ответ

Решение

Что-то вроде этого:

r.table("measurements")
                .filter(measurement -> measurement.g("measurementId").eq(1478261131038L))
                .update(measurement -> r.hashMap("movingObject", r.branch(measurement.hasFields("movingObject"), 
                        measurement.g("movingObject").append(r.hashMap("x", 10).with("y", 40)), 
                        r.array(r.hashMap("x", 0).with("y", 0)))));
Другие вопросы по тегам