And*_*ich 25
假设您有包含tag
字段的文档,并且您希望在其上进行搜索
Tags
{
tag,
...
}
Run Code Online (Sandbox Code Playgroud)
第一个选项是使用正则表达式(但它运行缓慢,如@RestRisiko所说):
db.tags.find( { "tag" : { "$regex" : "C#", "$options" : "-i" } })
Run Code Online (Sandbox Code Playgroud)
第二个选项是创建另一个小写字段(在mongodb中最好的方式):
Tags
{
tag,
tagLower,
..
}
Run Code Online (Sandbox Code Playgroud)
find
像往常一样使用:
db.tags.find( { "tagLower" : "c#"})
Run Code Online (Sandbox Code Playgroud)
它会更快,因为上面的代码可以使用索引进行搜索.
小智 8
您必须规范化要查询的数据.使用正则表达式进行不区分大小写的搜索可能也有效,因此不会使用索引.所以你唯一的选择是规范化.如果需要保留原始状态,则需要对数据进行非规范化并将规范化值存储在文档的专用列中.
归档时间: |
|
查看次数: |
12607 次 |
最近记录: |