代码之家  ›  专栏  ›  技术社区  ›  j-p

MongoDB正则表达式返回“like”而不是“literal”匹配

  •  0
  • j-p  · 技术社区  · 4 年前

    我需要进行不区分大小写的查找。 但我返回了一个不区分大小写的“like”,其中“like”我的字符串匹配的东西

    我可以在控制台或工具中通过添加^和$来克服这个问题,但是当我向查询传递var时,我无法在代码中弄清楚如何做到这一点。

    module.exports.getCollege = function( name, callback ) {
        
        const query = [
            {
                $match: {
                    'name': { $regex: name, $options: 'i' }
                }
            },
            {
                $project: {
                    'address': 1,
                    'name': 1
                }
            }
        ];
    
        College.aggregate( query ).exec( callback );
    
    }
    

    这将返回

    密歇根大学(对象), 密歇根大学弗林特分校(对象)

    我只想要密歇根大学(对象)

    如何获得文学匹配,但不区分大小写???

    +++++++++++++++++++++++++++

    对D.SM的回应-“使用排序规则…”

    enter image description here

    返回正确,因为字符串是正确的。。

    但是,不区分大小写不起作用 enter image description here

    0 回复  |  直到 4 年前
        1
  •  0
  •   D. SM    4 年前

    如何获得文学匹配,但不区分大小写???

    在查询中指定排序规则,并使用$eq而不是$regex。