0

我在使用 MongoDB 时遇到问题

当我直接将字符串存储到 MongoDB 中时,会导致错误:

非 utf8 字符串:fran��ai

但我不想将字符串编码为 UTF-8,所以我使用MongoBinData()来执行此操作,现在可以将数据存储到 MongoDB 中。

但是当我想在数据库中查找/搜索某些内容时,它什么也不返回

我的查找方法是

find(array("lines" =>array("bin"=> new MongoRegex("/1234/i"))));

并返回 NULL(数据库中有许多包含“1234”的字符串)

你能给我一些建议吗?

4

1 回答 1

1

正则表达式仅适用于 UTF-8 编码的字符串。因此,您必须将字符串转换为 UTF-8 以使其可搜索。当您出于某种原因坚持保留字符编码时,您唯一的另一种选择是为每个字符串设置两个字段,一个使用 utf8 表示,一个使用您自己的编码中的 BinData 表示。

于 2013-10-17T12:27:14.880 回答