在我的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」。我同意元素名稱應該一致。但由於某種原因,如果他們不是;那麼有辦法處理它;是我很好奇的。 –