DBREF可以包含其他字段吗?
题
当使用MongoDB需要使用DBREF时,我遇到了几种情况。但是,我也想从DBREF本身中的引用文档中缓存一些字段。
{$ref:'user', $id:'10285102912A', username:'Soviut'}
例如,即使引用了用户文档,我也可能希望拥有可用的用户名。这将为我提供单个文档方法的所有好处;更快的查询并消除了在我的代码中进行手动解释的需求。同时允许我使用有意义的参考文献。
这个想法是,当更新引用文档时(例如,用户更改其名称),我的业务层可以自动更新引用它的所有文档。
最终,我想知道将其他字段存储在我的dbrefs上是否是好形式?它会破坏什么吗?每次重写参考时,我都会丢失数据吗?像Pymongo这样的驾驶员会支持它吗?
解决方案
最终,我想知道将其他字段存储在我的dbrefs上是否是好形式?
拥有单独的“缓存”和“ REF”字段可能会更干净……这取决于您的数据的样子。
每次重写参考时,我都会丢失数据吗?
您可以,但不能小心。如果您要更新DB Ref Subobject,请确保您要更新要更新的特定字段,而不是覆盖整个子对象。
请记住,引用只是普通对象。数据库参考是标准,而不是特殊类型。
像Pymongo这样的驾驶员会支持它吗?
驾驶员的退出助手仍然可以正常工作。助手只是使用$ REF和$ ID字段进行发现。
不隶属于 StackOverflow