当使用MongoDB需要使用DBREF时,我遇到了几种情况。但是,我也想从DBREF本身中的引用文档中缓存一些字段。

{$ref:'user', $id:'10285102912A', username:'Soviut'}

例如,即使引用了用户文档,我也可能希望拥有可用的用户名。这将为我提供单个文档方法的所有好处;更快的查询并消除了在我的代码中进行手动解释的需求。同时允许我使用有意义的参考文献。

这个想法是,当更新引用文档时(例如,用户更改其名称),我的业务层可以自动更新引用它的所有文档。

最终,我想知道将其他字段存储在我的dbrefs上是否是好形式?它会破坏什么吗?每次重写参考时,我都会丢失数据吗?像Pymongo这样的驾驶员会支持它吗?

有帮助吗?

解决方案

最终,我想知道将其他字段存储在我的dbrefs上是否是好形式?

拥有单独的“缓存”和“ REF”字段可能会更干净……这取决于您的数据的样子。

每次重写参考时,我都会丢失数据吗?

您可以,但不能小心。如果您要更新DB Ref Subobject,请确保您要更新要更新的特定字段,而不是覆盖整个子对象。

请记住,引用只是普通对象。数据库参考是标准,而不是特殊类型。

像Pymongo这样的驾驶员会支持它吗?

驾驶员的退出助手仍然可以正常工作。助手只是使用$ REF和$ ID字段进行发现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top