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

複数のフィールドを同じ値と比較したいので、特別な (短い) 構文があると考えているかもしれません (範囲クエリのように、1 つのフィールドを複数の値と比較したい場合と同様)。

ただし、そうではありません。各フィールドが異なる値と比較されているかのように、すべてのフィールドとその値を比較する必要があります。

他に考慮する必要があるのは、いずれかのフィールドがこの正規表現に一致するすべてのドキュメントを検索するのか、それともすべてのフィールドが正規表現に一致するドキュメントを検索するのかということです。最初のケースでは、「$or」クエリを実行する必要があります。構文については、マニュアル ページの下部にある最後の例を参照してください。

于 2012-06-03T19:52:57.213 に答える