[MONGODB] 몽구스 findOne를 사용하는 방법
MONGODB몽구스 findOne를 사용하는 방법
(이 커피 스크립트에 있음을 사과) 나는 스키마 아래에 있습니다
Schema = mongoose.Schema
AuthS = new Schema
auth: {type: String, unique: true}
nick: String
time: Date
Auth = mongoose.model 'Auth', AuthS
난 그저 내 데이터베이스에 확실히 하나 개의 레코드를 복구 할 :
Auth.findOne({nick: 'noname'}, function(obj) { console.log(obj); });
불행하게도 이것은 항상 널 (null)를 기록합니다. db.auths.findOne ({닉 : '제목 없음'}) 몽고에서 항상 값을 반환 쉘. 무슨 일입니까?
해결법
-
==============================
1.대신 사용 기능 (ERR, OBJ)의 문제, 필요 발견 :
대신 사용 기능 (ERR, OBJ)의 문제, 필요 발견 :
Auth.findOne({nick: 'noname'}, function(err,obj) { console.log(obj); });
-
==============================
2.몽구스는 기본적으로 쿼리를 정확히 MongoDB의 쿼리처럼 될 수 없습니다, 그래서 당신에게 의사 관계형 DB의 API를 제공하여 MongoDB의 API를 래핑합니다. 몽구스 findOne 질의는 질의 객체가 아닌 문서를 반환합니다. 솔루션이 제안 또는 그 때는 사용하거나 await를 / 비동기 문서를 검색 할 수 있도록 V4 + findOne의 같은 thenable를 반환으로 당신도 콜백을 사용할 수 있습니다.
몽구스는 기본적으로 쿼리를 정확히 MongoDB의 쿼리처럼 될 수 없습니다, 그래서 당신에게 의사 관계형 DB의 API를 제공하여 MongoDB의 API를 래핑합니다. 몽구스 findOne 질의는 질의 객체가 아닌 문서를 반환합니다. 솔루션이 제안 또는 그 때는 사용하거나 await를 / 비동기 문서를 검색 할 수 있도록 V4 + findOne의 같은 thenable를 반환으로 당신도 콜백을 사용할 수 있습니다.
// thenables Auth.findOne({nick: 'noname'}).then(err, result) {console.log(result)}; Auth.findOne({nick: 'noname'}).then(function (doc) {console.log(doc)}); // To use a full fledge promise you will need to use .exec() var auth = Auth.findOne({nick: 'noname'}).exec(); auth.then(function (doc) {console.log(doc)}); // async/await async function auth() { const doc = await Auth.findOne({nick: 'noname'}).exec(); return doc; } auth();
당신은 타사 약속 라이브러리를 사용하고자하는 경우 문서를 참조하십시오.
-
==============================
3.당신은 내장 된 "인수"개체와 CONSOLE.LOG 사용을 고려 할 수 있습니다 :
당신은 내장 된 "인수"개체와 CONSOLE.LOG 사용을 고려 할 수 있습니다 :
console.log(arguments); // would have shown you [0] null, [1] yourResult
모든 인수이는 항상 출력, 당신이 얼마나 많은 인자에 상관없이.
-
==============================
4.[0] .nick을 OBJ 사용하고 결과를 원하는 얻을 것이다,
[0] .nick을 OBJ 사용하고 결과를 원하는 얻을 것이다,
-
==============================
5.내 경우에는 같은 오류가 나는 findOne에 대한 AWAIT를 추가하려면이 요구 Asyanc / 기다리고 있습니다 기능을 사용하고,이
내 경우에는 같은 오류가 나는 findOne에 대한 AWAIT를 추가하려면이 요구 Asyanc / 기다리고 있습니다 기능을 사용하고,이
Ex:const foundUser = User.findOne ({ "email" : req.body.email });
위 foundUser는 항상 findOne을 완료하기 전에 값을 반환 있기 때문에 사용자 중 하나가 아닌지 발견 두 경우 모두에서 개체 값이 포함되어 있습니다.
const foundUser = await User.findOne ({ "email" : req.body.email });
사용자가 제공 한 조건 컬렉션없는 경우 위, foundUser의 NULL을 반환합니다. 사용자 발견 반환 사용자 문서의 경우.
from https://stackoverflow.com/questions/7033331/how-to-use-mongoose-findone by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB의 연결을 확인하는 방법 (0) | 2019.12.24 |
---|---|
[MONGODB] 인덱스가 MongoDB를에 존재하는지 확인 (0) | 2019.12.24 |
[MONGODB] MongoDB를 +는 nodejs : ISODate 필드를 쿼리하는 방법? (0) | 2019.12.24 |
[MONGODB] MongoDB를 사용하여 산화 마그네슘의 효율적인 페이징 (0) | 2019.12.23 |
[MONGODB] MongoDB를, $ 조회로 집계 쿼리 (0) | 2019.12.23 |