¿Cómo devolver el valor de la función de devolución de llamada nodejs?

mturk_ops.block = function(callback){


mongodb.collection(collectionName, function(err, collection){

    collection.distinct('workerId',function(err,result){
        var result1 = [];
        console.log(result.length);
        for(var i=0; i< result.length;i++){

            console.log(result[i]);

          result1[result[i]] =  collection.count({
                'workerId':result[i],
                "judgementStat" : "majority"
            },function(err, count){
                //  console.log(count);
              //  globals.push(count);
                return count ;
                // console.log( worker + ' majority : ' + count);

            });

        }

    console.log(result1);
    });


});

}

Aquí estoy intentando imprimir 'resultado1' pero siempre imprimiendo una matriz con un valor indefinido. 'resultado1' es una matriz que se asigna fuera del alcance de la función de devolución de llamada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta