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")
                }
            })
    })
}

Идентификатор от каждого из активных заданий - это то, что я хотел бы вставить вместе с другими полями, которые я «выщипываю».

Если нужна дополнительная информация, просто дайте мне знать.

Спасибо!


person Howl Of the Sun    schedule 15.10.2015    source источник


Ответы (1)


Вы можете использовать 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')}))
})
person mlucy    schedule 15.10.2015
comment
Спасибо за быстрый ответ. Смогу ли я использовать какие-либо поля в документе о вакансии? Или мне нужно передать его вместе с идентификатором? - person Howl Of the Sun; 16.10.2015
comment
Нм я понимаю. извини нубская ошибка - person Howl Of the Sun; 16.10.2015