簡體   English   中英

使用節點js的mongodb數組數據存儲

[英]mongodb array data store using node 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)。 郵遞員屏幕輸出

 {
  "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
     }

對於您的控制台問題,

mongoose.Promise = global.Promise;放到mongoose.Promise = global.Promise; 在您已建立服務器連接的文件中(例如,在本例中為index.js )。

而且我認為您可能尚未發布整個代碼,因為我無法在您的代碼中找到childinfos

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM