使用Mongoosejs将数组添加到Mongodb中

时间:2014-05-31 13:23:21

标签: javascript mongodb mongoose

以下是我的两个模式:

var itemSchema = mongoose.Schema({
    body    : String
});

var taskSchema = mongoose.Schema({
    user_id    : { type: String, index: true }
  , short_id   : { type: String, index: true }
  , title      : { type: String, required: true }
  , desc       : String
  , items      : [itemSchema]
  , created_at : Date
});

从我的Angularjs应用程序中,我可以成功发布一个任务(包括其中的项目数组),但是我无法将项目插入数据库。

我目前正在尝试这个

task.user_id = req.user.id;
task.short_id = '12345';
task.title = req.body.title;
task.desc = req.body.desc;
task.created_at = Date.now();
task.items.push({ body: req.body.items.body }); //note: body is also the one attribute of Item

这是我如何保存

task.save(function (err) {
  if (err) return res.send(400, err)
  res.send (task)
});

除最后一行之外的所有行都有效 - 其他所有内容都会被添加。如何将项目数组添加到我的数据库?

1 个答案:

答案 0 :(得分:0)

由于req.body.items是一个包含与itemSchema格式相同的项目的数组,因此您可以直接指定:

task.items = req.body.items;