Sov*_*iut 5 python mongodb nosql pymongo dbref
我在使用 MongoDB 时遇到过几种需要使用 DBRefs 的情况。但是,我还想在 DBRef 本身中缓存引用文档中的一些字段。
{$ref:'user', $id:'10285102912A', username:'Soviut'}
Run Code Online (Sandbox Code Playgroud)
例如,即使引用了用户文档,我也可能希望用户名可用。这将为我提供单一文档方法的所有好处;更快的查询并消除了在我的代码中手动取消引用的需要。同时允许我在有意义的地方使用引用。
这个想法是,当引用的文档更新时(例如,用户更改了他们的名字),我的业务层可以自动更新引用它的所有文档。
最后,我想知道在我的 DBRef 上存储其他字段是否被认为是一种好形式?它会破坏任何东西吗?每次重写参考文献时我都会丢失数据吗?像 pymongo 这样的驱动程序会支持它吗?
最后,我想知道在我的 DBRef 上存储其他字段是否被认为是一种好形式?
拥有单独的“缓存”和“引用”字段可能会更清晰……这取决于您的数据是什么样的。
每次重写参考文献时我都会丢失数据吗?
你可以,但如果你小心的话就不行。如果您正在更新 DB ref 子对象,请确保您正在更新要更新的特定字段,而不是覆盖整个子对象。
请记住,引用只是普通对象。数据库引用是一种标准,而不是特殊类型。
像 pymongo 这样的驱动程序会支持它吗?
驱动程序的解引用助手仍然有效。助手只是使用 $ref 和 $id 字段执行 findOne 。
| 归档时间: |
|
| 查看次数: |
665 次 |
| 最近记录: |