如何在不区分大小写的情况下查询mongodb中的字符串?

时间:2018-03-08 03:32:48

标签: javascript mongodb

我在javascript中使用mongodb,我想知道如何有效地查询集合中的名称。事实上,我的收藏品中有2个字段用于同样的事情,这是非常不情愿的。

queryName: Stringname: String

我这样做的原因是因为如果我有名字“John”,我尝试查询名称为“john”的集合(请注意j是小写的)。它将返回null。这就是为什么我有字段queryName,它取名字并将其放入可搜索的格式。我想知道是否有一个选项可以禁用区分大小写并删除空格?

1 个答案:

答案 0 :(得分:1)

使用regex

db.collection.find({name: /^john$/i });

在解释原因queryNamename时,不确定您的意思,除非前者是name字段的某种规范化。

如果你想摆脱空间,你必须更加具体。查询周围的空格?中间人物之间的空间?您可以使用正则表达式,但后者更麻烦。通常的做法是在存储数据之前trim(),但是,您不会遇到此问题。

db.collection.find({name: /^\s*john\s*$/i });

我将它留给OP来修改用于更复杂的空白处理的用途。