2012-06-03 27 views
0

我正在爲我的應用程序及其使用的MongoDB創建一個搜索頁面。所以我需要在多個字段中搜索一個字符串數組。如何使用PHP在mongoDB上的多個字段中搜索相同的值?

當我在一個單一的搜索領域,我這樣做:

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

但是,當我搜索多個領域,有什麼事我需要做什麼?像這樣?

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

回答

3

下面是說明了如何從PHP查詢的MongoDB的頁面:http://php.net/manual/en/mongocollection.find.php

你可能會想,因爲你要多個字段比較相同的值,將有一個特殊的(短)語法(就像當你想比較單個字段到多個值時一樣,就像在範圍查詢中一樣)。

但是,情況並非如此 - 您仍然需要列出每個字段以及您將其與之比較的值,就好像每個字段正在與不同的值進行比較。

唯一需要考慮的其他事情是您是否搜索具有與此正則表達式匹配的任何字段的所有文檔,或者所有字段是否與正則表達式匹配。在第一種情況下,您必須執行「$或」查詢。有關語法,請參見the manual page底部的最後一個示例。

+0

是的,我所需要的只是一個較短的語法。我正在創建一個類來搜索任何東西......如果我可以做一些我所有的代碼都會更簡單。 –

相關問題