RethinkDB Node.js-使用另一个对象从文档的每个字段中减去值

时间:2018-10-19 15:35:48

标签: rethinkdb reql

给出一个包含以下对象的表:

{
  someString: 'something',
  foo: 100,
  bar: 53,
  baz: 230,
  ignore: 'everything but numbers'
}

和一个仅包含数字值的给定JSON对象:

{
  foo: 20,
  bar: 15,
  baz: 100
}

我需要一个ReQL查询,以从选定文档中的值中减去给定JSON对象中的所有值。但是,要注意的是,我不知道给定JSON对象中有哪些字段,它可能包含一个,全部或不包含任何数字字段(它永远不会包含非数字字段,或者不包含非数字字段。完全是原始表格。

我知道我可以很容易地得到问题文档并自己减去值并用新值更新文档,但是这些值一直在变化。因此,如果我这样做,那么在获取文档和更新文档之间可能会改变值,从而导致插入不正确的值。因此,我想在查询中进行实际的减法。

1 个答案:

答案 0 :(得分:0)

r.db("db").table("table").get("id")
  .update({
    "foo":r.row("foo").sub(20),
    "bar":r.row("bar").sub(15),
    "baz":r.row("baz").sub(100)
  })  

然后,您可以根据给定JSON对象中的值在代码中修改此更新。