Usando $lookup (que realiza la combinación externa izquierda, similar a sql) en la canalización de agregación puede resolver esto:
router.get('/',function(req,res,next){
AgendaCompromisso.aggregate([
{
$lookup:
{
from: "profissionais", //use the name of database collection not mongoose model
localField: "profissional",
foreignField: "_id",
as: "profissional_doc"
}
},
{
$unwind: "$profissional_doc" //remove array
},
{
$sort: {"profissional_doc": -1} // or {"profissional_doc": 1} for ascending
}
])
.exec( (err,data) => {
callback(err,data,res)
})
});
Solo una nota, para la búsqueda necesita mongodb versión 3.2 o superior.