2013-10-17 82 views
0

我有一個集合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)沒有結果

我用笨亞歷克斯比

提前致謝!

回答

1

此問題的標準解決方案是使用標準化字符串存儲第二個數組,如this answer中所述。

+0

哦,這意味着我必須存儲數組('name'=>'Péter','name_no_utf8'=>'Peter'),當我收藏時,我的數據庫將會擴展。一些其他的想法.... –

0

e和é是兩個完全不同的字符。雖然你可能想要某種字符摺疊的名字,但在大多數其他情況下,如果出現「e」==「é」,就會嚇壞了。

MongoDB不支持整理或自動轉換字符,所以這是行不通的。如果你想要這樣的匹配,你必須自己規範化它。

+0

好吧,也許我會存儲更多1陣列()口音的名字,沒有重音名稱在我的數據庫...這也是一個解決方案,但我的數據庫將擴張....呵呵容易這個場合,但mongodb沒有什麼可做,所以我討厭mongo,但我仍然必須與它合作)... –