Its probably easiest to do that in two passes. First you should retrieve all your Bar objects and then filter your Foo objects based on them. I don't have a node.js compiler so the code my contain some errors (I can edit it later during the day, but you'll get the picture).
var findFooWOutBar = function(theEmail)
{
Bar.find({email: theEmail}, function(err,docs)
{
if(err)
{
console.log(err);
return
}
else
{
var barIds=[];
docs.forEach(function(bar) //fetching all of the bars with the email
{
barIds.push(bar._id);//or whatever you are using as a reference
});
//nin means not in
Foo.find().nin('barRef', barIds).exec(function(err,foos)
{
//process your Foo results (foos) here
}); //have not tested this, but according to the docs it should go something like this
}
});
}
So basically, maybe something is not exactly right here, but you need an array of Bar ids (or other reference keys you are using) and combining it with the use of nin (not in).