嗨我有一個兩個集合我所關注的所有人之一,另一個他們已經發布在Twitter和Facebook等社交網站上。PHP ObjectId組的ID數
以下集合具有其中每個狀態具有字owner
每個用戶的進料收集的_id
的子陣列,並且具有的ObjectId主人,其是相同的以下項這裏是一個例子
'_id' => new MongoId("REMOVED"),
'following' =>
array (
'0' => 'ObjectId("53bf464ee7fda8780c8b4568")',
'1' => 'ObjectId("53b00ab5e7fda8304b8b4567")',
),
'owner' => new MongoId("53b9ea3ae7fda8863c8b4123"),
,並在飼料中,你會看到下面
array (
'_id' => new MongoId("REMOVED"),
'owner' => new MongoId("53bf464ee7fda8780c8b4568"),
'status' => ' love this video - Pedigree Shelter dogs http://youtube.com/watch?v=5v5Ui8HUuN8',
'timestamp' => new MongoDate(1405044327, 565000),
)
我有問題following.0狀態,而我可以遍歷一個接一個我不能出於某種原因做了一個$或搜索我不是 我非常理解在運行查詢之前如何遍歷以下數組並將其添加到搜索查詢中。
collection = static::db()->feed;
$where=array('$or' => array(array('owner' => new MongoId($following.0)))));
$feed = $collection->find($where);
return $feed;
現在我明白了,我會以某種方式有循環的$where=array('$or' => array(array('owner' => new MongoId($following.0)))));
但我只是不是100%確定如何做到這一點。
UPDATE 按答案下面我不得不編輯返回數組 - 現在我只有手動這方面的工作,並不能似乎得到的PHP腳本做
回答返回
Array ([owner] => Array ([$in] => Array ([0] => new MongoId("53bf464ee7fda8780c8b4568") [1] => new MongoId("53b00ab5e7fda8304b8b4567"))))
正確:
Array ("owner" => Array ('$in' => Array ("0" => new MongoId("53bf464ee7fda8780c8b4568"), "1" => new MongoId("53b00ab5e7fda8304b8b4567"))))
我不知道如何才能使這個工作。 當前的PHP
$collection = static::db()->following;
$following = $collection->findOne(array ('owner' => new MongoId($_SESSION['user_information'][0]['_id'])));
$follow = $following['following'];
$collection = static::db()->feed;
$where=array("owner" => array('$in' =>$follow));
print_r($where);
$feed = $collection->find($where);
print_r($feed);
return $feed;
我有固定的一個小問題收集及現在返回數組顯示
Array ([owner] => Array ([$in] => Array ([0] => MongoId Object ([$id] => 53bf464ee7fda8780c8b4568) [1] => MongoId Object ([$id] => 53b00ab5e7fda8304b8b4567))))
但我仍然無法得到它的返回料這樣一個
array (
'_id' => new MongoId("53bf4667e7fda8700e8b4567"),
'owner' => new MongoId("53bf464ee7fda8780c8b4568"),
'status' => ' love this video - Pedigree Shelter dogs http://youtube.com/watch?v=5v5Ui8HUuN8',
'timestamp' => new MongoDate(1405044327, 565000),
)
當我使用以下內容時問題得到修復
var_dump(iterator_to_array($feed));
小問題似乎ObjectId不正確,它應該是MongoId – RussellHarrower
@RussellHarrower JSON語法,因爲它出現在shell中。我明確地說過。我試圖區分數據結構的PHP可視化和世界其他地區如何看待它們。而且問題是,「這實際上是一個**真正的**陣列嗎?」或者是我們其他人稱之爲「散列」或「地圖」或「字典」或其他什麼? –
這裏是我與上述的問題 - 它返回Array([owner] => Array([$ in] => Array([0] => new MongoId(「53bf464ee7fda8780c8b4568」)[1] => new MongoId(「53b00ab5e7fda8304b8b4567」))))但是當它試圖運行它作爲$ where查詢它不起作用 - 它需要是「所有者」不是[所有者]以及其他關鍵部分 - 任何建議 – RussellHarrower