스키마를 생성 중이며 MongoDB에 문서를 저장하고 있습니다.MongoDB에서 undefined가 반환되지만 문서가 존재합니다. 쿼리가 작동해야합니다
스키마
var userSchema = new Schema({
userID: Number,
userName: String,
userEmail: String,
teams:Array,
fbUID: String,
googleUID: String,
twitter: String
});
문헌 : socialMediID 함수에 전달 된 파라미터
var users = mongoose.model('users',userSchema);
if(socialMediaType == "fbUID"){
var user = new users({
userID: id, //give the id of the next user in Dbase
userName: userName,
userEmail: 'userEmail',
teams:[],
fbUID : socialMediaID
});
.
나는 절약 오전 :
user.save(function(err, user){
if(err) return console.error(err);
log.d("user saved", user);
});
내 쿼리 :
function searchUser(socialMediaID, socialMediaType){
var user
if(socialMediaType == "fbUID"){
users.findOne({'fbUID': socialMediaID}, function(err, userFound){
if(err) return handleError(err);
user = userFound;
});
return user
이 같은 사용자 인쇄 할 때 :
log.d("user retrieved from Database", user)
가 다음과 같이 정의되지 않는다 :
user retrieved from Database undefined
을내가 터미널에서 검색 할 때 3,691,363,210
이 :
db.users.find()
내가이 얻을 : 나는 터미널에서이를 검색 할 때
{ "_id" : ObjectId("53c6a25ff34dc62bac05f6e9"), "userName" : "Andressa", "userEmail" : "userEmail", "teams" : [ ], "__v" : 0 }
{ "_id" : ObjectId("53c6b3dfedf9710db27740b2"), "userName" : "Andressa", "userEmail" : "userEmail", "fbUID" : "1234", "teams" : [ ], "__v" : 0 }
{ "_id" : ObjectId("53c6b3e0edf9710db27740b4"), "userName" : "Andressa", "userEmail" : "userEmail", "fbUID" : "1234", "teams" : [ ], "__v" : 0 }
{ "_id" : ObjectId("53c6b3e1edf9710db27740b6"), "userName" : "Andressa", "userEmail" : "userEmail", "fbUID" : "1234", "teams" : [ ], "__v" : 0 }
{ "_id" : ObjectId("53c6b3e2edf9710db27740b8"), "userName" : "Andressa", "userEmail" : "userEmail", "fbUID" : "1234", "teams" : [ ], "__v" : 0 }'
:
db.users.findOne({fbUID:"1234"})
난이 얻을 :
> db.users.findOne({fbUID:"1234"})
{
"_id" : ObjectId("53c6c8b3dc1ea36cb7f5f8e1"),
"userName" : "Andressa",
"userEmail" : "userEmail",
"fbUID" : "1234",
"teams" : [ ],
"__v" : 0
}
누군가 내가 뭘 잘못하고 있는지 알아?
양해 해 주셔서 감사합니다.
을 지옥 콜백
오신 것을 환영합니다 : 간단하게 해결하려면
이에게합니까? – sigurdga
@sigurdga, 질문을 업데이트했습니다. – debeka
실제 코드를'user = userFound'하는 예제가 있습니까? 이 경우 비동기 콜백에 값이 설정되면'user'를 반환하려고하기 때문입니다. 예를 들어 [비동기 함수에서 값을 반환하는 방법] (http://stackoverflow.com/questions/6847697/how-to-return-value-from-an-asynchronous-callback-function?rq=1)을 참조하십시오. 그것을 해결하십시오. –