コンパイラかく語りき

import { Fun } from 'programming'

RethinkDBでgeojsonをupdateする際の注意点

RethinkDB(ReQL)でのgeojsonメソッドについて。

insertならば以下のように問題なく動く。

r.table("hoge").insert({
  "location": r.geojson({
    type: "Point",
    coordinates: [-71.063611, 42.358056]
  })
})

updateで同じことをすると、エラーが出る。

r.table("hoge").update({
  "location": r.geojson({
    type: "Point",
    coordinates: [-71.063611, 42.358056]
  })
})

// Could not prove argument deterministic.  Maybe you want to use the non_atomic flag? in

updateの第二引数として、{non_atomic: true}を指定すればOK。

r.table("hoge").update({
  "location": r.geojson({
    type: "Point",
    coordinates: [-71.063611, 42.358056]
  }),
  {nonAtomic: true}
})

update - ReQL API

参考:https://github.com/rethinkdb/rethinkdb/issues/4778