Javascript 使用node和mongodb在单个数组中创建多个文档的过程是什么
这是NodeJS代码,我使用它在单个数组中插入多个JSON文档。我使用这个节点js代码和这个模式在MongoDB中插入值。我已正确插入文档,但每次插入时,它都会创建一个包含所有值的新文档。 是否每次我插入问号得分和时间时,它都会存储在测验数组中?否则将创建新的测验文档 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)
[{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}});