我正在为我的应用程序及其使用MongoDB创建搜索页面。所以我需要在多个字段中搜索字符串数组。
当我在单个字段中搜索时,我这样做:
$docs = $collection->find(array('username' => new MongoRegex("/^query/"));
但是当我搜索多个字段时,我需要做什么?像这样的东西?
$docs = $collection->find(array('username','name', 'email' => new MongoRegex("/^query/"));
答案 0 :(得分:3)
这是一个记录如何从PHP查询MongoDB的页面:http://php.net/manual/en/mongocollection.find.php
您可能会想到,因为您希望将多个字段与相同的值进行比较,以便为其提供特殊(较短)的语法(就像您希望将单个字段与多个值进行比较一样,例如在范围内查询)。
然而,事实并非如此 - 您仍然需要列出每个字段以及您要将其与之进行比较的值,就像每个字段与不同的值进行比较一样。
唯一需要考虑的是,您是否正在搜索所有与此正则表达式匹配的字段或所有字段与正则表达式匹配的文档。在第一种情况下,您必须执行“$或”查询。有关语法,请参阅the manual page底部的最后一个示例。