有没有办法用 RethinkDB 将一个点附加到一行
Is there a way of appending a point to a line with RethinkDB
假设我正在创建一个地理空间线对象,其语法与文档中描述的相同
r.table('geo').insert({
id: 101,
route: r.line([-122.423246,37.779388], [-121.886420,37.329898])
}).run(conn, callback);
有没有办法在不使用原子 (read/write) 模式的情况下将一个点附加到该行
如果您已经将文档插入数据库并想向该文档添加一个点,您可以使用 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);
假设我正在创建一个地理空间线对象,其语法与文档中描述的相同
r.table('geo').insert({
id: 101,
route: r.line([-122.423246,37.779388], [-121.886420,37.329898])
}).run(conn, callback);
有没有办法在不使用原子 (read/write) 模式的情况下将一个点附加到该行
如果您已经将文档插入数据库并想向该文档添加一个点,您可以使用 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);