2016-08-23 6 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)。 Mongoのコンソールコンソールの問題のために

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

答えて

0

は、

は、あなたが(私の場合そのindex.jsのように)あなたのサーバー接続を確立しているファイルにmongoose.Promise = global.Promise;を置きます。

コード内にchildinfosが見つかりませんでしたので、コード全体を投稿していない可能性があります。

+0

childinfosは、これらの値がストアする子スキーマのコレクション名 –

+0

あなたが直面している約束の問題を修正してAPIを再実行しましたか? –

+0

ありがとうございます。約束事問題はremove.butですが空の配列を作成しました –

関連する問題