2012-07-18 68 views
-2

無論從數組:如何用同一個鍵創建一個數組?

$g = array("Drama", "Crime"); 

做:

$genre = array("genre" => "Drama", "genre" => "Crime"); 

我們需要做一個查詢到數據庫MongoDB的,基本上是與此條件:

genre = 'Drama' OR genre = 'Crime' 

這也是爲什麼我試着:

find(array("genre" => "Drama", "genre" => "Crime")) 

由於鍵是相同的,所以不可能創建這樣的數組。我如何執行所需的查詢?

UPD 正確的解決方案:

$g = array("Drama", "Crime"); 
find(array("genre" => array('$in' => $g))) 
+3

究竟是什麼,你要完成?如果我們瞭解你正在做的事情的背景,也許我們可以提出更好的建議。 – Wiseguy 2012-07-18 19:19:50

+0

數組中不能有2個相同的密鑰。它如何知道你想要什麼?如果你這樣做了,第二個元素會覆蓋第一個元素。你爲什麼需要這些元素有鑰匙? '$ g'有什麼問題? – 2012-07-18 19:22:18

+0

@Rocket,我們需要對數據庫mongoDB進行查詢。 – 2012-07-18 19:29:34

回答

1

我不知道很多關於MongoDB的(我不得不穀歌這樣的:Docs ),但有一個$in運算符。你想genere IN ("Drama", "Crime")

我覺得這是你如何做到這一點在PHP/MongoDB的

find(array("genre" => array('$in' => array("Drama", "Crime")))) 
+0

+1看起來你是對的。 – nickb 2012-07-18 19:46:49

+0

@nickb:耶。 :-P – 2012-07-18 19:47:52

2

陣列內創建一個數組:

$genre = array(
    "genre" => array(
     "Drama", 
     "Crime" 
    ) 
); 
+0

我需要在mongoDB中創建一個查詢。此選項不起作用! – 2012-07-18 19:20:46

+2

@ArtPip:你說的不錯!我的**水晶球**今天不合格,抱歉不知道我自己! – 2012-07-18 19:22:13

+0

對不起,沒有指定一次。 – 2012-07-18 19:36:09