假设我有一个Mongo集合和一个Web应用程序来查看Internet中的集合。当我编辑集合(即添加,删除和更新文档)时,我的更改即时可在Internet中使用。
现在我想将所有更改保存为草稿,当我想让它可用时,我将明确发布草稿 。
简单的实现是添加一个新的草案集合。我只编辑此草稿集合,当我按发布按钮时,草稿集合将被复制到原始集合中。
到目前为止一直很好,但是这个解决方案不可扩展,因为复制的时间是集合大小的函数。你会建议另一个解决方案吗?
答案 0 :(得分:2)
如果文档是草稿,则在每个文档中都有一个字段,该字段是设置的草稿。类似的东西:
title:"FooBar blah blah",
draft:true
单击按钮发布帖子时,您只需要更新单个文档 - 该帖子的文档可以将草稿更改为false或$unset
。您选择要显示哪些文档的查询必须检查draft:{$ne:true}
- 请注意,这将匹配草稿设置为false的文档和完全没有字段draft
的文档。这使您可以单独保留当前文档,而无需更新它们以获得此字段。