如何使用mongodb和expressjs创建搜索/自动完成功能?



所以基本上我想为我的用户模式创建一个搜索功能。我将根据用户的名字接收用户的查询,并返回相关用户。

例如:

query = "leonardo ", response = [" leonardo dicaprio",…]

我已经尝试使用文本索引,但由于这需要输入整个单词,它不适合我的约束,因为查询很可能是字符而不是整个单词.

所以本质上我希望使一个自动补全,根据用户的一些输入返回相关用户。

我怎样才能做到这一点?谢谢你!

正如Dov Rine和rajabraza在评论中所示,我可以简单地使用正则表达式来查找这样的实现。

代码:

const searchResults = await Users.find({ name: { $regex: `^${req.params.name}`, $options: 'i' } }).select(["name"]);