0

我正在为我的应用程序及其使用 MongoDB 创建一个搜索页面。所以我需要在多个字段中搜索字符串数组。

当我在单个字段中搜索时,我会这样做:

$docs = $collection->find(array('username' => new MongoRegex("/^query/"));

但是当我搜索多个字段时,我需要做什么?像这样的东西?

$docs = $collection->find(array('username','name', 'email' => new MongoRegex("/^query/"));
4

1 回答 1

3

这是一个记录如何从 PHP 查询 MongoDB 的页面:http: //php.net/manual/en/mongocollection.find.php

你可能会想,因为你想将多个字段与相同的值进行比较,所以会有一个特殊的(更短的)语法(就像你想将单个字段与多个值进行比较时一样,比如在范围查询中)。

但是,情况并非如此——您仍然必须列出每个字段以及您要与之比较的值,就好像每个字段都在与不同的值进行比较一样。

唯一要考虑的另一件事是,您是在搜索所有字段与此正则表达式匹配还是所有字段与正则表达式匹配的所有文档。在第一种情况下,您必须执行“$or”查询。有关语法,请参见手册页底部的最后一个示例。

于 2012-06-03T19:52:57.213 回答