node.js - differences with php

I have the following code in PHP:

$IDs = implode(",", array_keys($result["matches"]));
$sql = "SELECT * FROM table WHERE id IN ($IDs)";

I am "translating" it into Node.js, and I suppose that implode becomes array.join, so I tried this:

var ids = Object.keys(answer['matches']).join(",");
var sql = "SELECT * FROM xml_it WHERE id IN (" + ids + ")";

now, if I echo the PHP $sql variable, I get the expected result:

SELECT * FROM table WHERE id IN (3187,3220,3233,3245,3246,3251,3253,3256, ...

BUT, with node.js, I am getting this:

SELECT * FROM xml_it WHERE id_xml IN ([0,1,2,3,4, ...

The answer['matches'] obviously is the same result (it's basically a Sphinx search result)

Any idea why I am not getting it as a string but the keys?

the data of $result and var answer looks like this:

[{"doc":3187,"weight":1,"attrs":{}},{"doc":3220,"weight":1,"attrs":{}},{"doc":3233,"weight":1,"attrs":{}},

This should work:

var matches = answer['matches'].map( function( o ) {
  return o.doc;
});
var ids = matches.join(",");
var sql = "SELECT * FROM xml_it WHERE id IN (" + ids + ")";

gotta map out the doc field since the structure is different