When there are no matches find() returns [], while findOne() returns null. So either use:
Model.find( {...}, function (err, results) {
if (err) { ... }
if (!results.length) {
// do stuff here
}
}
or:
Model.findOne( {...}, function (err, result) {
if (err) { ... }
if (!result) {
// do stuff here
}
}