我有一个模型,我想用mongoose执行文本搜索。
let models = await MyModel.find({$text: {$search: '"go"'}});
然而,我注意到当我搜索两个或更少字符的字符串时,没有返回结果。
如何搜索包含两个或更少字符的字符串?
您可以尝试使用aggregate
查询和RegEx
,如下所示:
let searchText = "go";
searchText = new RegExp(searchText, "i");
let models = await MyModel.aggregate([ {$match: {"text": { $regex: searchText}}} ])
这里的text
是将应用搜索的字段。您可以添加$or
条件以在多个字段中搜索。