2012-05-28 104 views
-1

正則表達式查找查詢我有像這樣的數據:的MongoDB和PHP - 在嵌套數組

{ 
    "_id": ObjectId("4fc3abc9751c38c811000002"), 
    "timeStamp": ISODate("2012-05-28T16: 45: 58.0Z"), 
    "loadTime": 2.3101460933685, 
    "description": { 
    "0": { 
     "level": NumberInt(0), 
     "description": "Some description" 
    } 
    }, 

如何找到我下面的查詢()中的「級別」的數據使用0-8的陣列樣的?

我的查詢看起來是這樣的:

find(Array ([description] => Array ([0] => Array ([level] => Array ([$in] => Array ([0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8)))))) 

回答

3

這應該做的伎倆:

->find(array('description.0.level' => array('$in' => range(0, 8)))); 

不過,我不太明白爲什麼你有一個 「0」 鍵那裏。該文件確實應該是這樣的:

{ 
    "_id": ObjectId("4fc3abc9751c38c811000002"), 
    "timeStamp": ISODate("2012-05-28T16: 45: 58.0Z"), 
    "loadTime": 2.3101460933685, 
    "description": [ 
    { 
     "level": 0, 
     "description": "Some description" 
    } 
    ], 
} 

在這種情況下,你可以找到的「級別」,如:

->find(array('description.level' => array('$in' => range(0, 8)))); 
+0

這是一個有點混亂,但也可能有類似的記載:「說明」:{ 「0」:{ 「電平」:NumberInt(0), 「說明」: 「一些描述」 }, 「1」:{ 「電平」:NumberInt(0), 「說明」:「一些描述「 }這是」0「的原因...... –

+0

另外,謝謝,這工作! –