回答
您可以使用PHP的iterator_to_array
功能,爲MongoCursor
docs的實例1中建議:
$jokes = $collection->find();
$jokesArray = iterator_to_array($jokes);
find()方法基本上返回MongoDB的光標http://www.php.net/manual/en/mongocollection.find.php
這應該爲你的情況下工作
$cursor = $collection->find();
foreach($cursor as $jokes) {
print_r($jokes);
}
@ xe4me事實上,它*不回答問題*似乎有點瑕疵。 –
作爲克里斯的回答一個側面說明:
陣列iterator_to_array(Traversable的$迭代器[,布爾$ use_keys = 真])
,請注意第二個參數,如果它被設置爲true(默認),最終的陣列將使用索引每個文檔中的「_id」字段。
如果應用在蒙戈查詢排序,最終陣列可能不是你所期望的,這意味着排序順序將不會被保留(除非你設置$ use_keys參數假)
這就是我正在尋找的......謝謝你...... –
注意:這還會刪除關聯數組鍵並將它們更改爲數字。 – Ligemer
iterator_to_array()
強制驅動程序將所有結果加載到內存,因此,不要對比內存大的結果集執行此操作! 使用這種
$jokes = $collection->find();
foreach ($jokes as $joke) {
var_dump($joke);
}
輕鬆了不少:如前面提到的
findeOne()->getArrayCopy();
:從裝載大結果集提防並將其轉換爲一個數組
,你還可以設置自己的喜好與類型映射選項
'typeMap' =>[
'document' => 'array',
'root' => 'array'
]
如果有的話ne來到這裏,也可以用toArray
的方法。
(mongodb的> = 1.0.0)
的MongoDB \驅動\光標::指定者 - 返回包含所有 結果此光標
$jokes = $collection->find()->toArray();
或數組:
$jokes = $collection->find();
$jokesArray = $jokes->toArray();
- 1. MongoCursor <BsonDocument>轉換爲List很慢
- 2. 無法將MongoCursor轉換爲BsonDocument
- 3. 將數組<CustomObject>轉換爲JSON
- 4. 從數組轉換爲ICollection <T>
- 5. 如何將jQuery .find()函數的結果轉換爲數組?
- 6. Spring&MongoCursor&Jackson JsonNode(數據庫轉換)
- 7. webservice:將xml轉換爲php數組
- 8. 將JSON PHP數組轉換爲Javascript
- 9. 將json轉換爲數組php將數組轉換爲字符串轉換
- 10. 將數組轉換爲數組數組
- 11. 將數組從MATLAB轉換爲numpy
- 12. 將數組從鍵轉換爲無鍵
- 13. 將數組從unsigned char *轉換爲char *
- 14. 將數組從PHP轉換爲C#
- 15. 將jquery(.each,.find,.next)轉換爲javascript
- 16. 將matlab中的find()轉換爲python
- 17. Lodash/JS - 將_.find語句轉換爲_.forEach
- 18. 將u8數組的引用轉換爲<Vec<u8>>
- 19. 將IEnumerable <IGrouping<,>>轉換爲數組
- 20. 從MongoCursor
- 21. 將數組轉換爲JSON
- 22. 將數組轉換爲LinkedList
- 23. 將數組轉換爲JSON
- 24. 將XML轉換爲數組
- 25. 將CSV轉換爲數組?
- 26. 將數組轉換爲NSAttributedString
- 27. 將數組轉換爲csv
- 28. 將CSV轉換爲數組
- 29. 將ArrayList轉換爲數組
- 30. 將DateTime.Now轉換爲數組
是最好的做法,以獲得結果數組爲mongodb? –
這是非常方便的一些操作,你不能在遊標上做,只需轉換爲json – tristanbailey
謝謝@Chris Henry – sujivasagam