如何在MongoDB中搜索字符串的一部分?

时间:2010-11-18 21:32:16

标签: php jquery mongodb

我有一个jquery自动完成脚本,它接受一个JSON数组并将其显示在一个表中(类似于谷歌建议)。在您键入时,它会从php脚本请求数据。

我想要做的是从MongoDB数据库中查询此数据作为人员类型,但我需要它来匹配所选字段的任何部分。

所以我有一个名为“Name”的字段,它在同一个字段中有姓氏和名字。如果我有“约翰史密斯”的记录,Jo Joh john和Sm Smi Smit史密斯应该都匹配相同的记录。

使用$ collection-> find(array('Name'=>'John');但是与我的John Smith记录不匹配。 我做错了什么?

2 个答案:

答案 0 :(得分:7)

您需要使用正则表达式。如

$collection->find(array('Name' => new MongoRegex('/John/i'));

答案 1 :(得分:1)

仅使用'John',您正在搜索名称与“John”完全匹配的记录。您可以使用正则表达式来匹配任意子字符串,例如:

$collection->find(array("Name" => "/.*John.*/i"));