Mongoose - 将对象数组发布到Mixed

时间:2014-07-25 21:15:36

标签: mongoose node-mongodb-native

难以理解:

我有一个预先构建的对象集,称为“步骤”,包含一堆子对象。它已经过消毒和正确设置,所以我想把它整个塞进整个Mongo。

我有一个Mongoose架构,如下所示:

var SummarySchema = new Schema ({
    title : {type: String, trim: true},
    steps : {},
    created : Date,
    updated : Date,
    testKey : Number
})

绝对没有什么可以让它得救 - 我试过这个,这让我“未定义”

var summary = new Summary();


summary._id = '';
summary.user = req.body.user;
summary.testKey = req.params.testId;
summary.steps = req.body.steps;

summary.save(function(err, data, number) {
            if (err)
                res.send(err);
            console.log('I have added and saved a summary', data);
    });

console.log (summary);让我

summary  { steps: 
   [ { tags_single: [Object],
       pass_fail: false,
       session_by_user: [Object],
       name: 'Apollonius of Perga' },
     { tags_single: [Object],
       pass_fail: false,
       session_by_user: [Object],
       name: 'Orion\'s sword' } ],
  testKey: 184702356266,
  _id: 53d2ca9e61b11bab40000004 }

和各种for循环将步骤推入DB。 在每种情况下,它根本不保存。我不知道为什么它至少不会保存一个空结构,但它完全失败了。

你能不能把东西搞成混合物?这样做的正确方法是什么?甚至以“更整洁”的方式返回数据的循环也会失败。

1 个答案:

答案 0 :(得分:1)

问题是您尝试为文档指定一个空字符串作为_id,这不是有效的ObjectId类型。

省略此分配,文档将使用_id构造函数已创建的Summary正确保存。