我在RethinkDb中有一个简单的表,我需要更新现有的行,这是一个非常简单的表,只有两列Id
和value
,每当我有一个相同的{{{ 1}}我想在现有值中添加新值,例如,如果表中有一行值为Id
,并且我有一条新记录{id: 25 , value:50}
该行应更新为{{1 }}
在Java文档中,我发现这个示例似乎符合我的要求https://www.rethinkdb.com/api/java/update/
{id:25 , value:100}
但是,我无法在我的代码中运行此示例,因为我收到此错误
{id : 25, value 150}
我使用scala和RethinkDb java驱动程序连接到rethinkDb
答案 0 :(得分:0)
我正在评估rethinkdb, 试过这段代码:
package de.jvr
import com.rethinkdb.RethinkDB
object Test {
def main(args: Array[String]): Unit = {
// database
val r = RethinkDB.r
val conn = r.connection().hostname("localhost").port(28015).connect()
try {
// existing database "test"
// drop table
r.db("test").tableDrop("posts").run(conn)
// create table
r.db("test").tableCreate("posts").run(conn)
// insert
r.table("posts").insert(
r.hashMap("id", 25)
.`with`("value", "50")
).run(conn);
// update
r.table("posts").get(25).update(r.hashMap("value", "100")).run(conn);
//print
val cursorJava: com.rethinkdb.net.Cursor[java.util.HashMap[String, String]] = r.table("posts").run(conn)
cursorJava forEach(x => println(x))
// or in the Data Explorer: r.table("posts")
} catch {
case e:Throwable => println("exception: " + e.toString)
}
sys.exit(0)
}
}
/ *
Cmd-line结果:[info] {id = 25,value = 100}
数据资源管理器:
返回1行。显示行1-1 {
“id”:25, “价值”:“100”
}
在build.sbt中有这个选项:
fork in run:= true
trapExit:= false
scalacOptions ++ = Seq(“ - Xexperimental”) * /