我目前遇到的问题是使用Mongoose通过API发布我的数据数据。
目前,此数据显示在我的控制台中:
taskName: 'name',
word: 'word2',
wordDesc: 'description',
tag: [ { text: 'word0' }, { text: 'word1' }, { text: 'word2' } ] }
我需要将标签数组推送到具有单独值的数据库,因此我可以将每个单词发布/定位到HTML中供以后使用。
目前我将整个数组添加到我的数据库集合中,它在我的数据库中提供了这些数据:
"word": "[object Object],[object Object],[object Object],[object Object]"
如何遍历数组中的每个项目并将其单独插入数据库?
API代码
router.post('/task', function (req,res) {
var task = req.body.tag;
var taskDesc = req.body.wordDesc;
var taskName = req.body.taskName;
console.log(req.body);
var newTask = new Task ({
tags:[{word:task}],
wordDesc: taskDesc,
taskName: taskName
});
newTask.save(function(err){
if (err) {
return res.send(err);
}
return res.json(newTask);
});
});
MongoDB架构
var taskSchema = mongoose.Schema({
tags: [{
word : {type: String, default: ""}
}],
wordDesc : {type: String, default: ""},
taskName : {type: String, default: ""}
});
答案 0 :(得分:0)
如果我理解你的问题,你可以这样做:
...
var newTask = new Task();
newTask.wordDesc = taskDesc;
newTask.taskName = taskName;
wordTasks.forEach(word=>{
newTask.tags.push(word);
});
newTask.save(function(err){
...
答案 1 :(得分:0)
我们最终从您的示例中汲取了一些灵感,代码最终看起来像这样,并按照我们想要的方式运行:
var word = req.body.tag;
var taskDesc = req.body.wordDesc;
var taskName = req.body.taskName;
console.log(req.body);
var newTask = new Task();
newTask.taskName = taskName;
newTask.wordDesc = taskDesc;
for (var i = 0; i < word.length; i++) {
console.log(word[i].text);
newTask.tags.push(word[i]);
}