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

4
我有一个jQuery自动完成脚本,它将JSON数组显示在表格中(类似于Google建议)。随着您的输入,它会从PHP脚本请求数据。
我想要做的是,在人们输入时从MongoDB数据库查询这些数据,但是我需要匹配所选字段的任何部分。
因此,我有一个名为“Name”的字段,该字段中包含姓和名。如果我有一条记录为“John Smith”,那么JO,Joh,john和Sm,Smi,Smit,smith都应该与该记录匹配。
使用$collection->find(array('Name' => 'John');不能匹配我的John Smith记录。我做错了什么?
2个回答

7
您需要使用正则表达式来实现。例如:
$collection->find(array('Name' => new MongoRegex('/John/i'));

我该如何编写Spring Data Mongo存储库查询?请指导一下...谢谢,Neeta - user5268786

1

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接