我正在使用spring数据mongodb,并希望在我的应用程序中使用手动引用并根据需要解决它们。我读过spring数据mongodb文档,但是无法找到spring是否支持手动引用?它支持DBRef并急切地解决它们,我不想要它们。 有没有人知道如何使用弹簧数据手动引用或者它是否受它支持?我问这个是因为mongodb docs推荐这个,它适合大多数用例。
答案 0 :(得分:1)
这取决于你的意思和支持'它。 mongo docs实际上建议使用手动引用而不是使用DBRefs。所有DBRef都会存储集合名称和文档ID。如果正在使用多个数据库并且您指的是另一个数据库中的内容,它可选地存储数据库名称。
关于DBRefs的好处是,在您加载包含DBRef的文档时会自动提取引用的文档。 DBRefs的痛苦在于引用的文档总是被加载,因为它是一个贪婪的负载。
如果您知道将要存储文档的位置,那么简单地将引用文档的id存储在字段中并自己加载引用的文档而不是使用DBRef通常会更容易和更有效。
如何使用手动参考全部取决于您希望它们如何工作,而您的问题并没有详细说明。
{
"_id" : [some id],
"refId" : [some other id]
}
<强>更新强>
注意到Spring Data最终实现了DBRefs的延迟加载,因此您可以使用注释@DBRef(lazy = true)
并根据需要加载ref。不使用DBRef的主要原因已被删除,因此您需要确定是否值得进行手动引用的额外工作