2016-08-23 2 views
0

우편 배달부 도구를 사용하여 내 자녀 정보를 MongoDB에 저장해야합니다. 하지만 그것은 나 에게이 메시지 "메시지"를 보여줍니다 : "우체부 콘솔에"자식 정보 유효성 검사가 실패했습니다 " . 하위 정보는 내 자녀 정보를 저장하는 내 수집 이름입니다.노드 js를 사용하는 mongodb 배열 데이터 저장소

내 요구 MongoDB를

1)의 내부에 한 스키마 아래와 같이 어레이 형태의 결과를 저장한다. js 하위 스키마

userId:{ 
      type: mongoose.Schema.Types.ObjectId, 
      ref: 'User' 
      }, 
    quiz:[ 
     { 
     questionId:{ 
       type: mongoose.Schema.Types.ObjectId, 
        ref: 'questions' 
        }, 
     score:{type:String}, 
     time:{type:String} 
     } 
     ] 

2)입니다. 노드 js

try { 

      var quizArr = []; 
      var quizObj = { 
       'questionId': req.params.questionId, 
       'score': req.params.score, 
       'time': new Date().toISOString() 
      }; 
      quizArr.push(quizObj); 
      var userObj = { 
       'userid': req.params.userId, 
       'quiz': quizArr 
      }; 
      //var parseObj = Json.stringify(userObj); This line is comment 

      var childinfoSave = new QuizChildInfo(userObj); 

      childinfoSave.save(function (err) { 
       if (err) return next(err); 
       res.send("Child questionId score and date saved successfully") 
       console.log("Child questionId score and date saved successfully"); 
      }); 
     }catch(err){console.log(err);} 

3)입니다. 우편 배달부 화면 출력

4). 콘솔 출력

Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html 

5). 콘솔의 문제에 대한

 { 
    "_id" : ObjectId("57bc483169e718642ac0ac44"), 
    "levelsAttempted" : [ ], 
    "quiz" : [ ], 
    "__v" : 0 
    } 

답변

0

몽고 콘솔,

이 (내 경우는이 index.js에서처럼) 당신이 당신의 서버 연결을 설정 한 경우 파일에 mongoose.Promise = global.Promise;을 넣어.

그리고 코드에서 childinfos을 찾을 수 없을 때 전체 코드를 게시하지 않았을 수 있습니다.

+0

childinfos는 자식 스키마에서 이러한 값이 저장되는 –

+0

을 가져 오는 컬렉션 이름입니다. 직면 한 약속 문제를 해결하고 API를 다시 실행 했습니까? –

+0

감사합니다 예 약속 문제는 remove.but 빈 배열을 만들었습니다 –

관련 문제