Rethinkdb 地理空间:getIntersecting

Rethinkdb Geospatial: getIntersecting

我有一个查询,用于搜索多边形列表并检查是否包含任何点列表。 我的问题是我需要知道如何插入一个指示器,指示该点所在的多边形。

这是我的查询:

function fieldGeoFilteringFn(){
    r.connect(config.rethinkdb, function(err, conn){
        if(err) {
            console.log('conn err', err)
        }
    r.db('queue').table('activeJobs').forEach(function(id) {
        return r.db('queue').table('fieldTrucks').insert( r.db('queue').table('tracksInit').getIntersecting( 
            r.db('queue').table('activeJobs').get(id('id'))('shape')('location') , {index: 'geometry'}).pluck(
                ['Heading', 'MobileName', 'geometry', 'id', 'Speed', 'HardwareId']))  }).run(conn, function(err,result){
                if(err) {
                    console.log("Insert Field Trucks  err", err)
                } else {
                    console.log("Field truck insert")
                }
            })
    })
}

来自每个 activeJobs 的 ID 是我想与其他字段一起插入的 "plucking"。

如果需要更多信息,请告诉我。

谢谢!

您可以使用merge组合对象。

这是你想要的吗?

r.db('queue').table('activeJobs').forEach(function(job) {
  return r.db('queue').table('fieldTrucks').insert(
    r.db('queue').table('tracksInit').getIntersecting(job('shape')('location')).pluck(
      ['Heading', 'MobileName', 'geometry', 'id', 'Speed', 'HardwareId']).merge(
      {job_id: job('id')}))
})