【发布时间】:2020-08-17 23:42:21
【问题描述】:
我需要执行不区分大小写的查找。 但是我得到了一个不区分大小写的“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 );
}
返回
密歇根大学(对象), 密歇根大学弗林特校区(实物)
我只想要密歇根大学(对象)
如何获得 LITERAL 匹配,但不区分大小写???
++++++++++++++++++++++++++++
对 D. SM 的回应 - “使用排序规则...”
返回正确,因为字符串正确..
【问题讨论】:
-
这是一个使用不区分大小写索引的好例子。正如@D.SM 建议的那样。它使用 find() 但聚合可以类似地声明要使用的排序规则。 stackoverflow.com/a/40914826/13885615