使用节点js的mongodb数组数据存储

时间:2016-08-23 11:19:50

标签: javascript node.js mongodb

我必须尝试使用​​postman工具将我的子信息存储到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)。邮递员屏幕的输出

 {
  "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)。 Mongo控制台

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

1 个答案:

答案 0 :(得分:0)

对于控制台的问题,

mongoose.Promise = global.Promise;放入已建立服务器连接的文件中(例如我的index.js}。

我认为你可能还没有发布整个代码,因为我在你的代码中找不到childinfos