2013-10-17 43 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,但我仍然必须与它合作)... –