DBRefs是否可以包含其他字段?

2024-06-16 11:07:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用MongoDB时遇到过几种需要使用dbref的情况。不过,我还想在DBRef中缓存引用文档中的一些字段。在

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

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

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

最后,我想知道在dbref上存储额外的字段是否被认为是一种好的形式?会打破什么吗?每次重写引用时我都会丢失数据吗?像pymongo这样的司机会支持吗?在


Tags: 方法代码文档refidmongodbusername情况
1条回答
网友
1楼 · 发布于 2024-06-16 11:07:22

Ultimately, I'm wondering if it's considered good form to store additional fields on my DBRefs?

有单独的“cached”和“ref”字段可能更干净。。。这取决于你的数据是什么样的。在

Will I lose my data each time a reference is rewritten?

你可以,但如果你小心点就不行了。如果要更新DB ref子对象,请确保更新的是要更新的特定字段,而不是覆盖整个子对象。在

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

Will drivers like pymongo support it?

驾驶员的解引用助手仍然有效。助手只需对$ref和$id字段执行findOne。在

相关问题 更多 >