如何在mongoDB中将文档标记为标记/删除



所以我有几个选择来暂时隐藏(禁用(或永久隐藏(删除(查询中的文档。

我不打算"物理"删除数据,除非在进行维护时。

我能做什么:

  • 添加两个属性,例如:"禁用:真"和"已删除:假">
  • 添加状态字段,例如:"状态:'已删除|禁用|其他'">
  • 扭转局面(仅显示活动文档(,例如:"状态:'活动'"或"活动:真"。

查询时,我可以在每个查询中查询这些属性,也可以查询仅返回"活动"文档的mongoDB视图。

该数据库的目的是帮助用户找到他们可能想要加入的项目。我也使用猫鼬,但许多查询可能是原生的mongoDB查询。

那么,就性能、可扩展性和潜在工作量而言,什么是"最智能的解决方案"呢?

我会选择状态字段。 它更通用,如果您需要添加一个额外的值,则不需要创建新字段,并且如果您想拥有多个状态(如活动状态和启用(,您甚至可以将状态字段设置为数组。

我不明白"查询mongoDB视图",但对我来说,解决方案非常简单。 只需添加到任何查询db.collection.find({..., "status" : "deleted"})

最新更新