如何使用PHP获取整个MongoDB集合

时间:2018-08-23 21:37:17

标签: php mongodb

使用以下代码,我可以从集合中获取一个节点:

<?php

$user = "xxxx";
$pwd = 'xxxx';

if (isset($_POST['needleID'])) {
    $needleID = $_POST['needleID'];
} else {
    echo "needle ID not set";
}

//Manager Class
$connection = new MongoDB\Driver\Manager("mongodb://${user}:${pwd}@localhost:27017");

// Query Class
$filter = ['id'=> $needleID];
$query = new MongoDB\Driver\Query($filter);

// Output of the executeQuery will be object of MongoDB\Driver\Cursor class
$rows = $connection->executeQuery('DBNAME.DBCOLLECTION', $query);

// Convert rows to Array and send result back to javascript as json
$rowsArr = $rows->toArray();
echo json_encode($rowsArr);

?>

但是,我真正想做的是从DBCOLLECTION中获取所有内容。

我对此方法一无所知。一些搜索要么让我费脑筋,要么是寻找旧版本的PHP驱动程序,例如这个fetch all data from mongodb collection

2 个答案:

答案 0 :(得分:3)

如果您查询特定的ID,则只会收到以该ID作为其值的文档。如果要检索集合中的所有文档,请将过滤器留空,即使用$filter = [];

答案 1 :(得分:0)

最好使用mongoexport导出集合。在大型集合上,您的代码会很慢并且会超时。考虑使用分页来获得结果。