mongo中未发布的数据库更新

时间:2016-05-22 11:44:36

标签: mongodb meteor

我有一个mongodb集合db.posts。

帖子有字段标题,正文,标签,作者,图像(对象数组),链接(对象数组)。

有很多管理员可以编辑这些帖子。创建帖子后,它将自动在公共网站上提供。发布帖子时,我希望管理员能够编辑帖子并将更新保存到Mongo记录中。但是,在批准之前不应公开看到这些修改。

最有效的方法是什么: -

  1. 创建第二个名为db.publishedPosts的集合,并在批准时使用完全覆盖将记录从一个集合复制到另一个集合。

  2. 将更新的字段保存在db.posts记录中的嵌套对象中。 db.posts.editedFields

  3. 是否有另一种处理此类问题的常用方法或模式。

  4. 我使用meteorjs作为我的完整堆栈应用程序。

1 个答案:

答案 0 :(得分:0)

如果你想要最少的代码,更多的集合=更多的代码,所以#1似乎对我不对。您希望能够重用已编码的表单模板,并保持反应性。

我会将所有字段放在子文档中,例如.published.foobar.editor.foobar等。 然后,您可以使用{{#with published}}包围公共显示模板,并将所有字段变量保留在其中。与编辑器模板相同:{{#with editor}}。您的保存功能需要修改以保存到子文档。添加将.editor复制到.published的发布按钮。

作为奖励,您现在可以.published成为您.push()每个编辑的数组,并创建一个获得已发布版本的published()模板助手。然后添加日期,你有版本控制。 ...但我现在要离开最小代码,对不起:D