/** query must be an array of hashes, structured like so: { _index: 'myindex', _type: 'mytype', _id: 'myid' } **/ function service( backend, query, cb ){ // backend command var cmd = { body: { docs: query } }; // query new backend backend().client.mget( cmd, function( err, data ){ // handle backend errors if( err ){ return cb( err ); } // map returned documents var docs = []; if( data && Array.isArray(data.docs) ){ docs = data.docs.filter( function( doc ){ // remove docs not actually found return doc.found; }).map( function( doc ){ // map metadata in to _source so we // can serve it up to the consumer doc._source._id = doc._id; doc._source._type = doc._type; return doc._source; }); } // fire callback return cb( null, docs ); }); } module.exports = service;