如果未找到.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

回到顶部