mongoose 多条件模糊查询的实现

    xiaoxiao2021-03-25  16

    作者:Smohan阅读:1972更新于2016-05-08 23:28

    这是今天手头项目中遇到的一个问题,关于 mongoose 如何实现类似于SQL中  `nick` LIKE '%keyword%' or `email` LIKE '%keyword%'  这种多条件模糊搜索的问题。 查阅了 mongoose文档 才得以实现,特此记录一下。 主要用到了 query.$or query.$regex 这两个find参数。

    query.$or用于实现多条件查询,其值为一个数组。相关文档  示例如下:

    query.or([{ color: 'red' }, { status: 'emergency' }]) 1

    query.$regex用于实现模糊查询。相关文档。使用示例如下:

    { <field>: { $regex: /pattern/, $options: '<options>' } } { <field>: /pattern/<options> } 1 2

    通过以上两个参数就可以实现多条件模糊查询了。以User表为例,通过输入一个关键字,来匹配昵称或者邮箱与关键字相近的记录.

    代码:

    var keyword = this.params.keyword; //从URL中传来的 keyword参数 var reg = new RegExp(keyword, 'i'); //不区分大小写 var result = yield User.find( { $or : [ //多条件,数组 {nick : {$regex : reg}}, {email : {$regex : reg}} ] }, { password : 0 }, { sort : { _id : -1 }, limit : 100 } ); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

    非特殊说明,本文版权归Smohan所有,转载请注明出处.

    本文标题:mongoose 多条件模糊查询的实现

    本文网址:http://www.smohan.net/blog/5051/.

    本文标签:mongoose.mongod.nodejs.koa.

    转载请注明原文地址: https://ju.6miu.com/read-300094.html

    最新回复(0)