mongodb是否有一个选项,可以在创建文档后对其进行写保护?

mongodb是否有一个选项,可以在创建文档后对其进行写保护?,mongodb,mongoose,Mongodb,Mongoose,我正在开发一个使用mongodb作为数据库的订购系统。我希望在创建订单文档后将其设置为只读,以便保存到数据库后无法对其进行编辑。你知道mongo是否有这样的能力吗 我搜索过谷歌,阅读过mongo文档,但到目前为止还没有找到任何关于此功能的参考资料。我希望这个选项确实存在,只是到目前为止还没有人写过:)不,这个选项不存在。您的代码应该负责使系统审计在应用程序级别安全,而不是较低级别的技术 “防止修改”的一个关键问题是不清楚这到底意味着什么。例如,在迁移过程中更改数据类型或数据结构(例如从price

我正在开发一个使用mongodb作为数据库的订购系统。我希望在创建订单文档后将其设置为只读,以便保存到数据库后无法对其进行编辑。你知道mongo是否有这样的能力吗


我搜索过谷歌,阅读过mongo文档,但到目前为止还没有找到任何关于此功能的参考资料。我希望这个选项确实存在,只是到目前为止还没有人写过:)

不,这个选项不存在。您的代码应该负责使系统审计在应用程序级别安全,而不是较低级别的技术


“防止修改”的一个关键问题是不清楚这到底意味着什么。例如,在迁移过程中更改数据类型或数据结构(例如从
price:23.4
price:{value:23.4,currency:'USD'}
)并不构成逻辑修改,但它肯定是在数据库级别上进行的。

感谢mnemosyn的及时响应。我希望我能在数据库级别控制它。你对我如何处理应用程序代码有什么建议吗?我的应用程序是基于web的,我使用node.js和express.js在以前的一个项目中,我们有一个简单的规则:不要对审计集合执行任何更新查询,除了迁移工具。代码经过审查,有一个简单的数据访问层,可以验证登录用户是否有权访问该特定文档。如果文档是锁定的类型之一,那么访问层将不允许它。最后,这与公司流程有关,因为管理员仍然可以登录控制台并删除文档。定期备份应该是一个基石,因为比起恶意或意外的代码问题,威胁要多得多。谢谢mnemosyn。下面是关于我的应用程序的更多背景信息。我的订购系统有几个文档模式(使用mongoose),其中一个是用于创建订单文档的订单模式。此订单模式引用(而不是嵌入)其他模式中的多个字段,以导入产品、客户等信息。首次创建文档时,模型将从引用的字段导入数据。但是,如果以后有人访问文档,我不希望文档再次导入引用的字段。创建订单时,将使用当时的客户名称(CustomerA)。然后CustomerA决定将他的名字改为CustomerB。然后,无论出于什么原因,我决定检查订单。我希望避免的是mongo再次导入引用的数据,并按照顺序将客户名称更新为新名称(CustomerB)。相反,文档应该在保存时使用旧名称(CustomerA)显示所有字段。老实说,我还没有测试过这种情况,因此这可能已经是默认行为。但根据我最初的问题,我在mongo中寻找一个选项,明确锁定我的文档。