【问题标题】:Case insensitive search in MongodbMongodb中不区分大小写的搜索
【发布时间】:2015-10-23 00:58:54
【问题描述】:

我正在 Mongo 中尝试不区分大小写的搜索。基本上我想要不区分大小写的字符串匹配我正在使用正则表达式。这是我的代码

Query query = new Query( Criteria.where(propName).regex(value.toString(), "i"));

但上面的内容与我的整个字符串匹配(有时带有空格的字符串)。即使它是子字符串,它也会返回值。

例如:假设我的集合有 2 个值“Bill”和“Bill status”,即使我的搜索是“bill status”,它也会返回“bill”。即使存在字符串的子字符串,它也会返回结果我正在寻找

我试过了,Query query = new Query( Criteria.where(propName).is(value.toString()));

但以上内容区分大小写。有人可以帮忙吗?

【问题讨论】:

  • 所以你的实际问题不是如何控制区分大小写,而是如何匹配完整的输入,而不仅仅是作为子字符串的输入?

标签: java regex spring mongodb


【解决方案1】:

您的正则表达式没有固定在前面和后面以实现等价性。像这样传递值:

foo: /^VALUE$/i

插入符号将字符串固定在前面,以实现不区分大小写的全文匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2021-02-03
    • 2013-07-08
    相关资源
    最近更新 更多