如何在MongoDB的clients集合中查找name字段首尾为指定字母的文档?
MongoDB 合并首尾匹配查询的最优实现
你需要查询clients集合中name字段以B开头且以s结尾的文档,原本拆分的两个查询分别是:
- 匹配name以s结尾:
db.clients.find({name:/s$/}) - 匹配name以B开头:
db.clients.find({name:/^B/})
你尝试的db.clients.find({name:/s$/,nom:/^B/})存在两处问题:一是字段名写错了(应该是name而非nom),二是这种写法是同时匹配两个不同字段,不符合你的需求。
最优实现是将两个正则条件合并为一个正则表达式,直接匹配首尾规则:
db.clients.find({name: /^B.*s$/})
如果需要忽略大小写(比如匹配b开头、S结尾的文档),可以添加i修饰符:
db.clients.find({name: /^B.*s$/i})
内容的提问来源于stack exchange,提问作者User124
相关产品推荐
相关产品推荐

