在 MongoDB 查询中,我试图匹配具有字符串字段的记录,该字段在该字符串中任何单词的开头包含搜索词。正则表达式在 regex101.com 上正常工作.
/\bCh/i
匹配值:
Chia seeds
i like to eat Chia seeds
i like to eat chia seeds
但是,当我在 MongoDB 查询中尝试相同的操作时,我没有得到匹配的记录。
{
"TenantNames" : /(\bSmith)/i
}
我也试过 /(\bSmith.*)/
i 和 /(\bSmith.*\b)/i
但它们都没有返回匹配的记录.我错过了什么?
我正在使用 C# 驱动程序来构建查询。
最佳答案
不确定,可能需要的输出是什么,我猜您可能正在尝试设计类似于以下的表达式:
.*\bChia\b.*
或:
.*\bSmith\b.*
也不确定 i
标志在 mongodb
中是如何工作的。
基于 this doc ,也许我们可能还想为此任务使用一些不同的命令,例如:
{ name: { $regex: /.*\bSmith\b.*/, $options: 'i', $nin: [ 'TenantNames' ] } }
表达式在 this demo 的右上面板中进行了解释, 如果你想探索/简化/修改它,在this link ,如果愿意,您可以逐步观察它如何与一些示例输入匹配。
引用
关于c# - 正则表达式匹配 MongoDB 中字符串中单词的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996742/