$ push in embedded array Meteor collection2

时间:2015-08-29 09:50:32

标签: javascript mongodb meteor meteor-collection2

在Meteor项目中,我正在使用[collection2 package] 我有以下collection2 Schema:

  var schema =  new SimpleSchema ({
    comments: {
        type: [{text: String, createdAt: Date}],
        optional: true
     }})

当我在Meteor方法中使用此查询时:

Articles.update({_id: articleId}, {$push: {comments: {text: "yryd"}}})

在注释数组中插入一个空白对象... 好的,这个查询没有问题,因为我在mongo终端运行它,一切似乎都很好,插入操作完成了 你认为有什么问题?

1 个答案:

答案 0 :(得分:1)

您的架构基本上似乎不符合您要在此处执行的操作。它很可能需要看起来像这样:

Articles new Meteor.collection("articles");

CommentSchema = new SimpleSchema({
    "text": { type: String },
    "createdAt": { type: Date, defaultValue: Date.now }
});

Articles.attachSchema(
    new SimpleSchema({
        "comments": [CommentsSchema]
    })
);

然后,当您添加新内容时,您的模式类型将针对" text"进行验证。字段存在,字段像" createdAt"被自动添加到数组条目中的子文档中。