Tente isto:
var cursor = User.aggregate([
{ $match: { _id: { $nin: req.decoded.username.connections } } },
{ $sample: { size: 10 } },
]).cursor().exec();
cursor.each(function(err, doc) {
//do something with doc
});
O Mongoose lida com um objeto agregado ao cursor de maneira diferente do nativo do Mongodb conforme você postou no seu link. Mais informações aqui:documentação do cursor agregado do mangusto