2016-08-23 52 views
0

我不得不嘗試存儲我的孩子的信息到MongoDB的使用通過郵遞員工具。但它表明我這個消息,「消息」:在郵遞員控制檯「兒童信息驗證失敗」 。孩子信息是我收集我的孩子信息的集合名稱。MongoDB的陣列數據存儲使用節點JS

我的要求是所述結果以陣列形式存儲如下內部的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)。郵遞員屏幕輸出

{ 
    "message": "childinfos validation failed" 
} 

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

對於您的控制檯的問題,

mongoose.Promise = global.Promise;文件在你建立了你的服務器的連接(如在我的情況下,它index.js)。

,我想你可能沒有張貼整個代碼,因爲我無法找到你的代碼childinfos

+0

childinfos是集合名兒童模式這些值在那裏拿到店裏 –

+0

你解決你面對並重新運行該API的承諾問題? ) –

+0

由於是承諾問題remove.but它創造了一個空數組 –