c# - 正则表达式匹配 MongoDB 中字符串中单词的开头

标签 c# regex mongodb mongodb-query

在 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 ,如果愿意,您可以逐步观察它如何与一些示例输入匹配。

引用

MongoDB C# Query for 'Like' on string

关于c# - 正则表达式匹配 MongoDB 中字符串中单词的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996742/

相关文章:

python - 如何使用 Scrapy 0.24 抓取站点并仅解析与 RegEx 匹配的页面

Java - 2D 字符串数组、动态表和空指针异常

c# - XmlSchema.Read 无法正确加载 xsd

c# - 发送电子邮件附件后删除 c# 中的文件

regex - 在 bash 中 Grepping 一个 20g 的文件

node.js - 是否建议在 AWS 上的 Ubuntu 实例上安装 MongoDB?

node.js - 找不到模块 'mongodb-client-encryption'

c# - 为什么我得到 'Assembly ' *.dll' must be strong signed in order to be marked as a prerequisite.'?

c# - 只打印一页

Mongodb 聚合 - 我有数据,现在如何映射它以获得正确的输出?