RethinkDB java脚本到java查询
RethinkDB javascript to java query
我是 RethinkDB 的新手,所以我能够在 Java 脚本中创建我的查询,现在的问题是将这个查询翻译成 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
}
任何人都可以指导我如何解决这个问题,因为我认为我们已经非常接近解决方案了。
像这样:
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)))));
我是 RethinkDB 的新手,所以我能够在 Java 脚本中创建我的查询,现在的问题是将这个查询翻译成 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
}
任何人都可以指导我如何解决这个问题,因为我认为我们已经非常接近解决方案了。
像这样:
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)))));