我想搜索的部分姓和名的比賽 - 在SQL怎麼做或搜索
f_name LIKE J% OR l_name LIKE S%
將匹配約翰·史密斯和約翰·亨利或哈里史密斯的例子。
我假設我可能需要使用「$或」運算符,
我有這到目前爲止,我認爲這是正確的做LIKE%的部分,但我相信它是做一個「和」搜索(這意味着它搜索f_name LIKEĴ%和l_name LIKE S%,因此將只匹配約翰·史密斯):
$name1="J";
$name2="S";
$cursor = $this->clientCollection->find(array('f_name' => new MongoRegex('/^'.$name1.'/i'), 'l_name' => new MongoRegex('/^'.$name2.'/i')));
注:這將匹配包含如引用%j%
MongoRegex('/'.$name1.'/i')
這將比賽開始(注意加^)作爲以J%
MongoRegex('/^'.$name1.'/i')
這工作,但我只是想知道,爲什麼內部的一組陣列通話?原始代碼起作用,它將記錄返回爲AND。我嘗試使用更改代碼\t $ cursor = $ this-> clientCollection-> find(array('f_name'=> new MongoRegex('/'.$ name1。'/ i')),array('l_name '=> new MongoRegex('/'.$ name2。'/ i'))));並且它不起作用,但它在您的情況下使用'$或'。 – 2011-05-14 10:06:45
我試圖解釋這裏發生了什麼。不幸的是,所有這些PHP'array()'都可以很難說出PHP中的Mongo查詢中發生了什麼,特別是一目瞭然。 – 2011-05-14 21:55:45