我有一个mongodb集合db.posts。
帖子有字段标题,正文,标签,作者,图像(对象数组),链接(对象数组)。
有很多管理员可以编辑这些帖子。创建帖子后,它将自动在公共网站上提供。发布帖子时,我希望管理员能够编辑帖子并将更新保存到Mongo记录中。但是,在批准之前不应公开看到这些修改。
最有效的方法是什么: -
创建第二个名为db.publishedPosts的集合,并在批准时使用完全覆盖将记录从一个集合复制到另一个集合。
将更新的字段保存在db.posts记录中的嵌套对象中。 db.posts.editedFields
是否有另一种处理此类问题的常用方法或模式。
我使用meteorjs作为我的完整堆栈应用程序。
答案 0 :(得分:0)
如果你想要最少的代码,更多的集合=更多的代码,所以#1似乎对我不对。您希望能够重用已编码的表单模板,并保持反应性。
我会将所有字段放在子文档中,例如.published.foobar
和.editor.foobar
等。
然后,您可以使用{{#with published}}
包围公共显示模板,并将所有字段变量保留在其中。与编辑器模板相同:{{#with editor}}
。您的保存功能需要修改以保存到子文档。添加将.editor
复制到.published
的发布按钮。
作为奖励,您现在可以.published
成为您.push()
每个编辑的数组,并创建一个获得已发布版本的published()
模板助手。然后添加日期,你有版本控制。 ...但我现在要离开最小代码,对不起:D