[MONGODB] 아무것도 .find 발견하지 않는 경우 몽구스) (무언가를
MONGODB아무것도 .find 발견하지 않는 경우 몽구스) (무언가를
나는 MongoDB의 일부 데이터를 저장 및 JS / nodejs와 몽구스으로 접근하고있다. 나는 문제가되지입니다, 잘 데이터베이스에 뭔가를 찾기 위해 () .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');
}
});
});
그러나 이것은 여전히 아니 기록하지 않았다. 내가 무슨 말이냐?
그것을 찾을 수없는 경우, 그냥 내가 내가 그것을인지하고 싶지하지 않는 것이없는 경우 나중에 일을 할 필요를 제외하고 괜찮 찾기 호출, 모든 것을 건너 뜁니다. : /
해결법
-
==============================
1.이 경우에는 일치 찾을 수 없습니다 ()가 반환 [], findOne () 반환 널 (null) 동안. 중 하나를 사용 그래서 :
이 경우에는 일치 찾을 수 없습니다 ()가 반환 [], 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 } }
-
==============================
2.
UserModel.find({ nick: act.params }, function (err, users) { if (err) { console.log(err) }; if (!users.length) { //do stuff here }; else { users.forEach(function (user) { console.log(user.nick); }); } });
나는 일에 발견하는 것이다.
-
==============================
3.내가 사용했다 :
내가 사용했다 :
if(!users.length) { //etc }
작업에 얻을 수 있습니다.
-
==============================
4.당신이 res.send (데이터) 또는을 console.log (데이터) 코드이 코드를 시도 복귀 [] 또는 빈 로그 / 빈 res.send을 수행 사용 후 :
당신이 res.send (데이터) 또는을 console.log (데이터) 코드이 코드를 시도 복귀 [] 또는 빈 로그 / 빈 res.send을 수행 사용 후 :
if (data === null) { console.log('record does not exist') // or do something }
내 프로젝트의 예
router.post('/updated-data', (req, res, next) => { const userName = req.body.userName; const newUserName = req.body.newUserName; User.findOneAndUpdate({userName: userName}, {userName: newUserName}, {new: true}, (err, data) => { if (err) { console.log(err) } else if (data === null || !data) { res.send('kullanıcı bulunamadı') } else { console.log(newUserName) res.send(data) } })
참고 : 다른 예는보다 효율적으로 사용 될 수있다.
-
==============================
5.이 옵션을 사용합니다.
이 옵션을 사용합니다.
if(!users) { res.send({message: "User not found"}); }else { res.send({message: "User found"}); }
from https://stackoverflow.com/questions/9660587/do-something-if-nothing-found-with-find-mongoose by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 3 레벨 룩업 중첩 (0) | 2019.12.29 |
---|---|
[MONGODB] MongoDB를위한 구성 파일을 만드는 방법 (0) | 2019.12.29 |
[MONGODB] MongoDB의에서 최소값을 찾는 방법 (0) | 2019.12.29 |
[MONGODB] 몽고하는 수입 JSON 파일에 적절한 방법 (0) | 2019.12.29 |
[MONGODB] MongoDB의에서 인덱스의 목록? (0) | 2019.12.29 |