mongoose 注意事项

Schema属性:如type、required、enum、lowercase、uppercase、trim、match等。

Scheme方法:如static、method、pre、set等。

这是今天手头项目中遇到的一个问题,关于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用于实现模糊查询。相关文档。使用示例如下:

{ : { $regex: /pattern/, $options: '' } }

{ : /pattern/ }1

通过以上两个参数就可以实现多条件模糊查询了。以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

}

);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • 初学Node.js接触到MongoDB数据库,阅读资料中推荐的都是Mongoose模块,可以更加方便的对数据库进行...
    LnEoi阅读 31,510评论 9 49
  • 参考深入浅出mongoose 连接mongoose mongoose连接数据库有两种方式第一种: 第二种: mon...
    bacbcc94613b阅读 14,218评论 1 27
  • Mongodb 配置选项 通常在mongod.conf中 配置文件 设置了配置文件后启动时以自定义的配置文件启动:...
    AkaTBS阅读 4,744评论 0 6
  • 夜半敲窗细雨稠, 莲池寂寞锁心柔。 临塘岸上枯藤树, 一片残荷尽显秋。
    妮子_aacf阅读 1,729评论 0 5

友情链接更多精彩内容