假设我正在使用与文档
中描述的语法相同的语法创建地理空间行对象r.table('geo').insert({
id: 101,
route: r.line([-122.423246,37.779388], [-121.886420,37.329898])
}).run(conn, callback);
是否有一种方法可以在不使用原子(读/写)模式的情况下将一个点附加到此行
答案 0 :(得分:1)
如果您已将文档插入数据库并想要向该文档添加一个点,则可以使用udpate
命令和toGeojson
命令来执行此操作。
这是看起来的样子:
r.table('30711279').get(101)
.update(function (row) {
return {
'route': r.line(r.args(
row('route').toGeojson()('coordinates')
.append([ -120, 85 ])
))
}
}, {nonAtomic: true })
基本上,我在route
属性中创建了一个新行。我将所有旧点作为数组传递,然后附加经度和纬度的新元组。
如果您还没有将文档插入数据库并希望在该行添加一个点,那么您可以这样做:
var arrayOfPoints = [[-122.423246,37.779388], [-121.886420,37.329898]];
var point = [ -120, 57 ];
r.table('geo').insert({
id: 101,
route: r.line(r.args(arrayOfPoints.concat(point)))
}).run(conn, callback);