有没有办法在mongo上查询不区分大小写的值而不使用map/reduce?

推荐答案

假设您有一个包含tag个字段的文档,并且希望对其进行搜索

Tags
{
  tag,
  ...
 }

第一种 Select 是使用regex(但正如@RestRisiko所说,它的工作速度很慢):

db.tags.find( { "tag" : { "$regex" : "C#", "$options" : "-i" } })

第二个选项是创建另一个小写字段(在mongodb中是最好的方式):

Tags
{
  tag,
  tagLower,
  ..
}

像往常一样使用find:

db.tags.find( { "tagLower" : "c#"})

它会更快,因为上面的代码可以使用索引进行搜索.

Mongodb相关问答推荐

MongoDB聚合:将文档列表转换为列表

我可以在BSON中使用代理字段吗?

Mongo DB-如果一个特定字段有多个文档匹配,则更新文档字段

Spring Boot 升级后未映射 Mongo 模板结果

MongoID find 或 find_by

将 MongoDB 转移到另一台服务器?

使用 mongodb 时是否需要规范化数据库?

mongoose中的 required是什么意思?

使用 Node.js 通过 SSL 连接到 MongoDB

Mongo C#忽略属性

在 mongoDB 中存储 java 8 LocalDate

Mongoose $push 不断添加两个条目

mongodb,pymongo,aggregate聚合给出奇怪的输出

Node.js 和 Passport 对象没有方法 validPassword

如何使用sailsjs v0.10连接mongodb?

如何使用 c# 2.0 驱动程序将数据插入到 mongodb 集合中?

如何在mongodb中删除数组的第n个元素

当前的 URL 字符串解析器已弃用

在 mongodb 中插入当前日期时间

对象不是 JSON 可序列化的