mongoose关于模糊搜索的写法,有不指定字段的写法吗?

新手上路,请多包涵

有这个问题是因为有一个需求,要将这个搜索接口写成通用的,网上的一些教程都是这样的:

const keyword = this.params.keyword //从URL中传来的 keyword参数
const reg = new RegExp(keyword, 'i') //不区分大小写
const result = yield User.find(
    {
        $or : [ //多条件,数组
            {nick : {$regex : reg}},
            {email : {$regex : reg}}
        ]
    },
    {
        password : 0
    },
    {
        sort : { _id : -1 },
        limit : 100
    }
)

虽然内容是模糊的,但是需要指定字段,但是多个模型都用这个接口的话,不可能每一个模型都一样是吧。

$or : [ //多条件,数组
            {nick : {$regex : reg}},
            {email : {$regex : reg}}
        ]

我该怎么把这部分的指定字段变成匹配所有字段呢,注意是每个模型的所有字段,因为所有的列表页都要用这个接口。

阅读 2.1k
1 个回答
✓ 已被采纳新手上路,请多包涵

通过中间件根据参数指定字段实现了,别问为什么不用$text

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题