Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用node和mongodb在单个数组中创建多个文档的过程是什么_Javascript_Arrays_Node.js_Mongodb - Fatal编程技术网

Javascript 使用node和mongodb在单个数组中创建多个文档的过程是什么

Javascript 使用node和mongodb在单个数组中创建多个文档的过程是什么,javascript,arrays,node.js,mongodb,Javascript,Arrays,Node.js,Mongodb,这是NodeJS代码,我使用它在单个数组中插入多个JSON文档。我使用这个节点js代码和这个模式在MongoDB中插入值。我已正确插入文档,但每次插入时,它都会创建一个包含所有值的新文档。 是否每次我插入问号得分和时间时,它都会存储在测验数组中?否则将创建新的测验文档 mongodb中的数组。 例如,测验数组中的[{0:questionId:1,“score:1,“time:1-Sep-2016},{1:questionId:2,“score:0”,“time:1-Sep-2016}…等] 1)

这是NodeJS代码,我使用它在单个数组中插入多个JSON文档。我使用这个节点js代码和这个模式在MongoDB中插入值。我已正确插入文档,但每次插入时,它都会创建一个包含所有值的新文档。 是否每次我插入问号得分和时间时,它都会存储在测验数组中?否则将创建新的测验文档 mongodb中的数组。 例如,测验数组中的
[{0:questionId:1,“score:1,“time:1-Sep-2016},{1:questionId:2,“score:0”,“time:1-Sep-2016}
…等]

1) 。这个节点是我正在使用的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 childinfoSave = new quizChild(userObj);

    childinfoSave.save(function (err, data) {
        if (err) {
          return next(err);
        }else{
          //res.send("Child questionId score and date saved successfully" + data);
          res.send(data);
          console.log("Child questionId score and date saved successfully");
        }
    });
} catch (err) {
    console.log('Error While Saving the child questionId score and Date ' + err);
    return next(err);
  }
2) 。我正在使用这个模式

    2). Schema


  quiz: {type: Array,
   questionId: {
          type: mongoose.Schema.Types.ObjectId,
          ref: 'Question',
          index: true
          },
  score: { type: Number },
  time: { type: String }
  } 
3) 。这是MONGODB中存储的结果

   {
    "_id" : ObjectId("57c1549926bbb3891a90db1a"),
    "quiz" : [
     {
        "questionId" : ObjectId("57c14a36b78cd543fc59b827"),
        "score" : 1,
        "time" : "2016-08-27T08:51:37.503Z",
        "_id" : ObjectId("57c1549926bbb3891a90db1b")
    }
  ],
  "__v" : 0
  }
  {
  "_id" : ObjectId("57c154a626bbb3891a90db1c"),
  "quiz" : [
     {
        "questionId" : ObjectId("57c14a36b78cd543fc59b828"),
        "score" : 1,
        "time" : "2016-08-27T08:51:50.898Z",
        "_id" : ObjectId("57c154a626bbb3891a90db1d")
     }
 ],
 "__v" : 0
 }
4) 与上面两个文档不同,我想在一个包含多个对象的测验数组中创建一个文档

   {
    "_id" : ObjectId("57c1549926bbb3891a90db1a"),
   "quiz" : [
       {
          "questionId" : ObjectId("57c14a36b78cd543fc59b827"),
          "score" : 1,
          "time" : "2016-08-27T08:51:37.503Z",
          "_id" : ObjectId("57c1549926bbb3891a90db1b")
        },
      {
        "questionId" : ObjectId("57c14a36b78cd543fc59b828"),
        "score" : 1,
        "time" : "2016-08-27T08:51:50.898Z",
        "_id" : ObjectId("57c154a626bbb3891a90db1d")
    }
    ],
  "__v" : 0

插入第一条记录后,需要在下次收到请求时对其进行更新

db.collName.update({ "_id" : ObjectId("57c1549926bbb3891a90db1a")},
                    {$push:{quiz : quizObj}});

请参阅有关如何更新的更多信息

 db.collName.update({ "userId" : ObjectId(req.params.userId.toString())},
                    {$push:{quiz : quizObj}});