我有一个集合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'),当我收藏时,我的数据库将会扩展。一些其他的想法.... –