You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MongoDB查询字段值全为小写字符串的文档?

MongoDB 查询全小写字符串字段的可行方案

当然可以实现这种查询,不过你给出的伪查询写法无法直接运行——普通查询条件里不能直接使用聚合操作符,需要借助$expr来包裹聚合表达式逻辑。

正确的查询写法

用$expr把聚合表达式作为查询条件,对比字段本身和它的小写转换结果是否相等:

db.collection.find({
  $expr: { $eq: ["$address", { $toLower: "$address" }] }
})

这个查询会返回所有address字段值本身就是全小写的文档(比如{"address": "123 main st"}),同时过滤掉包含大写字母的文档(比如{"address": "123 Main St"})。

性能提示

如果集合数据量较大,这类查询会对每个文档执行$toLower计算,没法利用常规索引,可能影响性能。如果需要频繁做这类查询,建议:

  • 新增一个衍生字段(比如address_lower),在写入或更新文档时同步存储address的小写值
  • 直接查询address与address_lower相等的文档,或者基于address_lower做匹配,这样就能利用索引提升效率

内容的提问来源于stack exchange,提问作者Benji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:35:17