首页 > 解决方案 > 数据库添加自动生成的标签列以提高可搜索性

问题描述

我目前正在开发一个 Springboot、Mongodb项目,其中一个模型有 4 个 DBRefs。例如:模型 A具有模型 B、C、D 和 E的DbRefs 。该系统通常需要检索由模型 B、C、D 和 E中的属性查询的模型 A的列表。类似于SQL 中的连接查询。

目前,我正在使用$lookup操作来加入文档,然后执行它$match并且它可以工作。

问题是随着收集数据检索时间增加中文档数量的增加(即使我正在分页。页面大小为 25 个文档)

1000 个文档的检索时间为 200ms,10,000 个文档的检索时间为1000ms

因此,我正在考虑向模型 A添加一个名为标签的字符串字段,并使用将用于查询的模型 B、C、D 和 E 中的逗号分隔值填充它。所以在查询中,我可以对标签字段进行“喜欢”查询。(我必须让标签字段保持最新。每当 B、C、D、E 模型更新时。)

这是个好主意吗?或者是否有任何其他模式可以实现这一点。

标签: javadatabasemongodbnosql

解决方案


推荐阅读