猫鼬搜索用户模型的所有字段值



我想在整个用户模型中搜索值,如果管理员搜索例如数字或字符串,如果用户模型值中存在具有该值的文档(或该值包括管理员输入),Mongoose 应返回所有找到的文档。

我怎样才能实现这样的事情?

像这样:

const adminInput = req.query.searchText
const foundDocument = await users.find({ '*': includes(adminInput) }) // very simple xD
res.send(foundDocument)

正如@NeNad指出的那样,这个问题已经被问了很多次,回答了很多次。另一个例子是这个问题。

我只是特别插话两件事,关于这个问题的措辞引起了我的注意。 首先是:

如果管理员搜索数字或字符串,如果存在具有该值

的文档(或该值包括管理员输入)

这种类型的搜索只能应用于字符串值。没有3"在"537的价值中的概念。但是,字符的概念"3"在字符串"537"内。

第二件事与代码中的includes(adminInput)有些重叠。数据库中提供的直接$text搜索功能不处理部分匹配。您可能需要在MongoDB集群旁边研究诸如Atlas Search或耦合Elasticsearch之类的替代方案,以获得您所描述的完整功能。

最新更新