在我的MongoDB集合,如下所示MongoDB的查询与不区分大小写的架构元素
db.teacher.insert({_id:1 ,"name":"Kaushik"})
如果我搜索
db.teacher.find({name:"Kaushik"})
我得到一个记录我添加了一个纪录。但是,如果我尝试使用“NAME”而不是“名称”,即
db.teacher.find({NAME:"Kaushik"})
它不会返回任何记录。
这意味着我必须知道模式元素是如何精确拼写的。有没有办法通过忽略模式元素的情况来编写查询。
我们可以通过如下
> db.teacher.find({name:/kAUSHIK/i})
{ "_id" : 1, "name" : "Kaushik" }
不区分大小写的元素值是否有类似的架构元素;像
> db.teacher.find({/NAME/i:"kaushik"})
不是一个好办法没有。你可以在JavaScript中编写所有的匹配,但它不能使用索引或其他优化的本地特性为什么你要这样做呢?我知道MongoDB是无模式的,但是在文档之间,元素名称不应该变化,因为通常会在文档之间改变结构或类型是不明智的。 –
如何简单地使用所有小写字母或camelcase键?问题解决了。 –
@ user3561036加入到集合中我自己犯了错误,我在一个文档中使用“名称”,而在其他文档中使用“名称”。这可能发生在其他元素“studenId”/“studentid”。我同意元素名称应该一致。但由于某种原因,如果他们不是;那么有办法处理它;是我很好奇的。 –