Osc*_*son 6 javascript php database ajax mongodb
在结果之后如何查看和"处理"MongoDB集合的内容find()?即:
<?php
$cursor = $collection->find();
json_encode($cursor);
//OR
print_r($cursor);
?>
Run Code Online (Sandbox Code Playgroud)
无论我做什么,我什么也得不到,但如果我循环它我可以逐个获取数据我可以得到数据(当然)但问题是,我想用它来做像编码一样将数组作为一个整体返回给JSON对象以执行AJAX/JS.
那么,我怎么能这样做?
您正在尝试在MongoCursor上执行print_r,而不是PHP数组(这不起作用.)
http://php.net/manual/en/class.mongocursor.php
您需要将光标转换为PHP数组...
<?
// Connect to Mongo and set DB and Collection
$mongo = new Mongo();
$db = $mongo->twitter;
$collection = $db->tweets;
// Return a cursor of tweets from MongoDB
$cursor = $collection->find();
// Convert cursor to an array
$array = iterator_to_array($cursor);
// Loop and print out tweets ...
foreach ($array as $value) {
echo "<p>" . $value[text];
echo " @ <b><i>" . $value[created_at] . "</i></b>";
}
?>
Run Code Online (Sandbox Code Playgroud)
或者,使用findOne()代替不会返回MongoCursor ...所以如果您只想获取一个文档并将其作为JSON返回给您的应用程序,您可以非常简单地这样做(这显示了如何执行JSON和print_r正如你问的那样)......
请参阅这些文章获取更多帮助......
http://learnmongo.com/posts/mongodb-php-install-and-connect/
http://learnmongo.com/posts/mongodb-php-twitter-part-1/
<?php
$connection = new Mongo();
$db = $connection->test;
$collection = $db->phptest;
$obj = $collection->findOne();
echo "<h1>Hello " . $obj["hello"] . "!</h1>";
echo "<h2>Show result as an array:</h2>";
echo "<pre>";
print_r($obj);
echo "</pre>";
echo "<h2>Show result as JSON:</h2>";
echo "<pre>";
echo json_encode($obj);
echo "</pre>";
?>
Run Code Online (Sandbox Code Playgroud)
标准是使用 foreach 或 while 循环结果。
还有iterator_to_array (作为 PHP 版本 > 5.1 的一部分) ,它可以与 Mongo 游标一起使用。正如Mongo::find上的注释,这会将所有结果加载到内存中,这可能会超出内存限制并使脚本崩溃 - 因此请注意预期的数据量。
$cursor = $collection->find();
$array = iterator_to_array($cursor);.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6524 次 |
| 最近记录: |