如何在 mongoDB 中将文档标记为已标记/已删除
Posted
技术标签:
【中文标题】如何在 mongoDB 中将文档标记为已标记/已删除【英文标题】:How to mark documents as marked/deleted in mongoDB 【发布时间】:2019-02-14 23:33:30 【问题描述】:所以我有几个选择可以暂时隐藏(禁用)或永久隐藏(删除)我的查询中的文档。
我不打算“物理地”删除数据,除非是在进行维护时。
我能做什么:
添加两个属性,例如:“disabled: true”和“deleted:false” 添加一个状态字段,例如:“status: 'deleted|disabled|other'” 扭转局面(仅显示活动文档),例如:“status: 'active'”或“active: true”。查询时,我可以在每个查询中查询这些属性,也可以查询一个只返回“活动”文档的 mongoDB 视图。
数据库的目的是帮助用户找到他们可能想加入的项目。我也使用 mongoose,但许多查询可能是原生 mongoDB 查询。
那么就性能、可扩展性和潜在工作量而言,“最智能的解决方案”可能是什么?
【问题讨论】:
【参考方案1】:我会选择状态字段。 它更通用,如果您需要添加额外的值,则不需要创建新字段,如果您想要拥有多个状态(如 ACTIVE 和 ENABLED),您甚至可以将状态字段设置为一个数组。
我不明白“查询 mongoDB 视图”,但对我来说解决方案非常简单。
只需添加到曾经查询db.collection.find(..., "status" : "deleted")
【讨论】:
在 SQL 中我习惯了视图,mongodb 似乎也有它们:docs.mongodb.com/manual/core/views。视图的好处之一:我可以随时更改它们而无需接触代码。或者至少我只需要触摸一次。 状态数组或状态对象也可能是一个很好的解决方案。将是最灵活的。 对,我不知道你也可以在 Mongo 中使用它。谢谢!以上是关于如何在 mongoDB 中将文档标记为已标记/已删除的主要内容,如果未能解决你的问题,请参考以下文章