使用以下代码,我可以从集合中获取一个节点:
<?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
答案 0 :(得分:3)
如果您查询特定的ID,则只会收到以该ID作为其值的文档。如果要检索集合中的所有文档,请将过滤器留空,即使用$filter = [];
。
答案 1 :(得分:0)
最好使用mongoexport导出集合。在大型集合上,您的代码会很慢并且会超时。考虑使用分页来获得结果。