【问题标题】:Mongoose regex query猫鼬正则表达式查询
【发布时间】:2021-08-02 05:15:09
【问题描述】:

我正在尝试在 findOne 查询(不区分大小写的正则表达式)中使用正则表达式查找包含匹配名称“yoyo”的单个记录。而不是在集合中找到匹配项,而是抛出错误MongooseError: Operation 'names.findOne()'buffering timed out after 10000ms

据我所知,我的查询似乎没有应用查询的正则表达式选项。但我不确定为什么。另外 maxTimeMS 选项似乎也不起作用,也不知道为什么。

names.findOne({name: {$regex: 'yoyo',$options: 'i'}}, callback).maxTimeMS(2000).exec();

假设该集合仅包含一条记录。 {name:"YoYo",age:19}

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    猫鼬没有$regex 运算符。您应该在find() 查询中插入正则表达式:

    {name: {$regex: /yoyo/, $options: /*whatever regex options you need, like /g, etc */}}
    

    这样,正则表达式被委托给 mongoDb 引擎并应用于您指定的字段(例如“名称”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多