MongoDB 和 C#:不区分大小写的搜索

2024-01-01

我在用MongoDB http://www.mongodb.org/MongoDB 的 C# 驱动程序 http://www.mongodb.org/display/DOCS/CSharp+Language+Center#CSharpLanguageCenter-C%23Driver.

我最近发现 MongoDB 中的所有查询都是区分大小写的。如何进行不区分大小写的搜索?

我找到了一种方法来做到这一点:

Query.Matches(
    "FirstName", 
    BsonRegularExpression.Create(new Regex(searchKey,RegexOptions.IgnoreCase)));

最简单、最安全的方法是使用Linq:

var names = namesCollection.AsQueryable().Where(name =>
    name.FirstName.ToLower().Contains("hamster"));

正如中所解释的tutorial http://docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/ ToLower, ToLowerInvariant, ToUpper and ToUpperInvariant全部以不区分大小写的方式执行匹配。之后,您可以使用所有支持的字符串方法,例如Contains or StartsWith.

该示例将生成:

{
    "FirstName" : /hamster/is
}

The i选项使其不区分大小写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB 和 C#:不区分大小写的搜索 的相关文章

随机推荐

  • IntelliJ 下划线反斜杠

    我使用反斜杠作为我正在处理的序列化格式的转义字符 我将它作为常量 但 IntelliJ 强调它并以红色突出显示 悬停时 它不会给出错误消息或任何有关其不喜欢它的原因的信息 这是什么原因以及如何解决 IntelliJ 比我聪明 意识到我在正则
  • 将 python 列表转换为字典

    我正在尝试将我的列表转换为 python 中的字典 我有清单l l a b c d 我想将它转换为字典 d d a d b d c d d 我正在尝试 for i in range 0 len l d i 0 l i 但这行不通 谢谢 保持
  • 即使使用 -Ofast,Swift 的字典也很慢

    我正在使用本质上实现缓存Dictionary在斯威夫特 表现远远低于我的预期 我读过其他一些问题 例如这是关于数组排序的 https stackoverflow com questions 24101718 swift performanc
  • Backbonejs 与小胡子模板。

    我想使用带有小胡子模板的backbonejs 来做一个简单的应用程序 你能给我一个示例程序吗 新节点文件 var Person Backbone Model extend defaults name Guest Worker var Per
  • 为什么 Applicative 应该是 Monad 的超类?

    Given Applicative m Monad m gt mf m a gt b ma m a 这似乎被认为是一项法律 mf lt gt ma do f lt mf a lt ma return f a 或者更简洁地说 lt gt ap
  • 获取鼠标相对于饼图的位置(方程)

    我已经从一组数据创建了一个画布饼图 我现在尝试定位相对于饼图的鼠标位置 以检测正在悬停的数据部分 我快到了 但我被一个方程式困住了 我的逻辑运行良好 所以我认为这更像是一个数学问题 但会看看其他人对我的方法的看法 这是我的饼图和我正在使用的
  • Maven `pom.xml` 中 标签之间的区别[重复]

    这个问题在这里已经有答案了 配置我的时pom xml 我必须配置一个插件 我发现的是
  • 为什么这个特征中需要“Sized”界限?

    我有一个具有两个相关功能的特征 trait WithConstructor Sized fn new with param param usize gt Self fn new gt Self Self new with param 0 为
  • laravel重置密码不重置密码

    我正在使用 laravel 6 我第一次尝试为我的 laravel 项目实现忘记密码 我自定义了登录 忘记密码 重置密码页面的默认设计 我已经集成了mailtrap用于发送电子邮件 我已经成功地实现了这样的流程 单击忘记密码链接 获取用户输
  • 无论操作系统如何,在 Java 中执行计划任务的最佳解决方案是什么?

    我想在我的 Java 桌面应用程序上生成警报 设置特定日期 时间的警报 可以是 5 分钟或 5 个月内 我需要能够在触发警报时创建 SWT 应用程序 我需要它能够在任何操作系统上工作 软件用户可能使用 Windows 其中 90 其余使用
  • CVXPY 在二次规划优化问题上返回不可行/不准确

    我正在尝试使用 CVXPY 来解决非负最小二乘问题 附加约束是解向量中的条目之和必须等于 1 然而 当我使用 SCS 求解器在这个简单的二次程序上运行 CVXPY 时 我让求解器运行最多 100000 次迭代 最后遇到错误 指出二次程序不可
  • 为什么运行 Rspec 时会出现未定义方法“有”错误?

    我最近升级到 Rails 4 除了 Rspec 测试之外 一切正常 require spec helper describe Invoice do before each do user FactoryGirl create activat
  • Laravel 查询生成器 - sum() 方法问题

    我是 Laravel 的新手 查询生成器有一些问题 我想构建的查询是这样的 SELECT SUM transactions amount FROM transactions JOIN categories ON transactions c
  • 如何在 remix run 中从实用程序函数重定向

    我正在使用 Remix run 我想从 auth 实用程序函数重定向到我的登录页面 但它不起作用 这是与我的身份验证实用程序方法类似的功能 import redirect from remix async function authenti
  • 在 for 循环中使用“else”的 Pythonic 方法[重复]

    这个问题在这里已经有答案了 我几乎没有注意到Python程序在for循环中使用了else 我最近使用它在退出时根据循环变量条件执行操作 因为它在范围内 在 for 循环中使用 else 的 Python 方式是什么 有什么值得注意的用例吗
  • Jquery找到所有以字符串开头的id?

    只是想知道如何在整个页面中搜索以 content 开头的所有 id 以及如何仅在名为 extra content 的命名 div 中找到它们 一旦我有了所有的ID 我想隐藏它们 下面是我想找到的示例 div div lt Find div
  • 使用 Maven 的 JavaScript 缩小工作流程

    我想知道是否有任何 最佳实践 可以将 现代 JavaScript 构建工作流程 集成到生成 WAR 工件的 Maven 构建中 我发现了几个处理串联和缩小的 Maven 插件 WRO4J https code google com p wr
  • 如何开始 VOIP 编程? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何开始开发 VoIP 产品 想听听
  • 抛出异常时不调用析构函数

    考虑以下代码 include
  • MongoDB 和 C#:不区分大小写的搜索

    我在用MongoDB http www mongodb org 和MongoDB 的 C 驱动程序 http www mongodb org display DOCS CSharp Language Center CSharpLanguag