使用MongoDB时遇到问题
当我直接将字符串存储到MongoDB中时,会导致错误:
非utf8字符串:fran ai
但我不想将字符串编码为UTF-8,所以我使用 MongoBinData()来执行此操作,现在可以将数据存储到MongoDB中。
但是当我想在数据库中查找/搜索某些内容时,它什么都不返回
我的查找方法是
find(array("lines" =>array("bin"=> new MongoRegex("/1234/i"))));
并返回NULL(数据库有许多包含“1234”的字符串)
你可以给我一些建议吗?答案 0 :(得分:1)
正则表达式仅适用于UTF-8编码的字符串。因此,您必须将字符串转换为UTF-8以使其可搜索。当你坚持不管出于什么原因保留你的字符编码时,你唯一的另一个选择就是每个字符串都有两个字段,一个是utf8-represenation,另一个是你自己编码的BinData表示。