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