我有一個集合MongoDB中MongoDB的PHP口音搜索UTF8
array('name'=>'Péter')
當我查詢$this->mongo_db->like('name', 'Péter', 'i', true, true)
如此成功,但
查詢$this->mongo_db->like('name', 'Peter', 'i', true, true)
沒有結果
我用笨亞歷克斯比
提前致謝!
我有一個集合MongoDB中MongoDB的PHP口音搜索UTF8
array('name'=>'Péter')
當我查詢$this->mongo_db->like('name', 'Péter', 'i', true, true)
如此成功,但
查詢$this->mongo_db->like('name', 'Peter', 'i', true, true)
沒有結果
我用笨亞歷克斯比
提前致謝!
此問題的標準解決方案是使用標準化字符串存儲第二個數組,如this answer中所述。
e和é是兩個完全不同的字符。雖然你可能想要某種字符摺疊的名字,但在大多數其他情況下,如果出現「e」==「é」,就會嚇壞了。
MongoDB不支持整理或自動轉換字符,所以這是行不通的。如果你想要這樣的匹配,你必須自己規範化它。
好吧,也許我會存儲更多1陣列()口音的名字,沒有重音名稱在我的數據庫...這也是一個解決方案,但我的數據庫將擴張....呵呵容易這個場合,但mongodb沒有什麼可做,所以我討厭mongo,但我仍然必須與它合作)... –
哦,這意味着我必須存儲數組('name'=>'Péter','name_no_utf8'=>'Peter'),當我收藏時,我的數據庫將會擴展。一些其他的想法.... –