如果未找到.find()猫鼬,请采取措施
我将一些数据存储在mongodb中,并使用js /
nodejs和mongoose访问它。我可以使用.find()在数据库中找到合适的东西,这不是问题。问题是如果没有东西,我想做点其他事情。目前,这是我正在尝试的:
UserModel.find({ nick: act.params }, function (err, users) { if (err) { console.log(err) };
users.forEach(function (user) {
if (user.nick === null) {
console.log('null');
} else if (user.nick === undefined) {
console.log('undefined');
} else if (user.nick === '') {
console.log('empty');
} else {
console.log(user.nick);
}
});
});
当我执行act.params不在尼克索引中的操作时,这些命令都不会触发。发生这种情况时,我什么都不需要控制台,但是当它确实存在时,我确实让user.nick可以很好地进行记录。我只是想像这样反向进行:
UserModel.find({ nick: act.params }, function (err, users) { if (err) { console.log('noooope') };
users.forEach(function (user) {
if (user.nick !== '') {
console.log('null');
} else {
console.log('nope');
}
});
});
但这仍然没有记录nope
。我在这里想念什么?
如果找不到,它会跳过find调用中的所有内容,这很好,除了如果不存在,我需要在事后再做,如果不想的话,我以后就要做。:/
回答:
如果没有匹配项,则find()返回[]
,而findOne()返回null
。因此,请使用:
Model.find( {...}, function (err, results) { if (err) { ... }
if (!results.length) {
// do stuff here
}
}
要么:
Model.findOne( {...}, function (err, result) { if (err) { ... }
if (!result) {
// do stuff here
}
}
以上是 如果未找到.find()猫鼬,请采取措施 的全部内容, 来源链接: utcz.com/qa/399283.html