Java MongoDB中树结构数据类型的搜索和保存算法

Java MongoDB中树结构数据类型的搜索和保存算法,java,spring,mongodb,mongodb-query,spring-data-mongodb,Java,Spring,Mongodb,Mongodb Query,Spring Data Mongodb,您好,我已经使用参考资料在MongoDB中以树状结构排列了我的文档。例如,我有一个“教室”,它包含名称字段和一组“学生”。每个学生都包含自己的带有“地址”的学生详细信息。Address类包含街道等 我在课堂上给了学生参考的对象。并使用Spring数据MongoDB中的“@DBRef”引用学生对象中的地址。所有这些数据都在同一个集合中。现在我的数据排列是树状结构 现在我想澄清两个问题 一,。在搜索过程中,我有教室名和学生名。有了这些细节,我只需要学生对象的标记字段和学生地址对象的街道字段 解决方法

您好,我已经使用参考资料在MongoDB中以树状结构排列了我的文档。例如,我有一个“教室”,它包含名称字段和一组“学生”。每个学生都包含自己的带有“地址”的学生详细信息。Address类包含街道等

我在课堂上给了学生参考的对象。并使用Spring数据MongoDB中的“@DBRef”引用学生对象中的地址。所有这些数据都在同一个集合中。现在我的数据排列是树状结构

现在我想澄清两个问题

一,。在搜索过程中,我有教室名和学生名。有了这些细节,我只需要学生对象的标记字段和学生地址对象的街道字段

解决方法:使用mongoTemplate搜索教室,使用java代码比较和获取数据。这不是一个好主意,因为将整个对象加载到内存中以及使用java遍历对象会造成性能缺陷。如何编写单个查询从MongoDB获取特定数据字段

二,。在保存教室对象时,我首先手动保存所有地址和最后一个教室的学生。我将实时获取大对象。我想我应该先保存这片叶子。自下而上的设计..有谁能建议我如何处理这些情况。。??Springs中的任何算法或MongoDB中的inbuild fn


谢谢

也许你应该读一下关于嵌入式和规范化数据模型的文章:还有这个:谢谢你的链接..我已经把这个文档扔了..只有这样我才设计了我的对象..现在我面临性能问题..当我在搜索和保存时.难怪当你像使用关系数据库一样使用MongoDB时会出现性能问题数据库尽可能使用嵌入而不是引用,或者你必须付出代价。@Philipp-是否有任何直接的单一查询来过滤不同文档中的特定数据,就像我上面的问题1一样..我为此做了很多工作..同时我正在扫描整个对象并从叶子中保存这也在处理任何需要克服的建议???-谢谢