在nodeJS中具有多个字段的自动完成搜索

时间:2020-09-21 12:56:57

标签: javascript node.js mongodb

我正在使用nodejs,mongodb,并希望建立一个像Facebook这样的自动完成搜索。键入关键字时,它需要搜索组,用户,页面等。

例如,我有两个集合:用户和公司。它们都有一个名称字段。当有人在搜索栏中键入关键字时,我将提供包含输入文字的用户和公司的建议。使用诸如User.find(name:“ typed name”)和Company.find(“ name:” typed name“)之类的东西。我遇到的问题是如何建议两个集合中的名字,但结果看起来像来自单个收藏集。

如何将多个集合的结果合并为一个结果集合?

1 个答案:

答案 0 :(得分:0)

您可以在Controllers / Services层中构建“搜索”方法,通过该方法可以依次独立地执行每个集合(User.find,Company.find等)的搜索。您必须将结果连接到一个新的实体中,该实体可以应用“数据传输对象”模式来命名为“ SuggestionDTO”。您只会使用这个新实体来展示/传输结果。