如何通过MongoBinData()函数查找存储为bin数据的数据


How to find data being stored as bin data via MongoBinData() function?

我在使用 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 表示形式。