Le pilote node.js findOne
a une signature d'appel différente de celle de findOne dans le shell MongoDB. Vous passez l'objet de sélection de champ comme projection élément des options paramètre :
dbo.collection("users")
.findOne({"friends.email": email},
{projection: { friends: { $elemMatch: { email: email } } } },
function(errT, resultT) {...});