我正在尝试使用与在MongoDB客户端中相同的查询来访问PHP中的:
$db = $mongo->selectDB('myapp_db');
$array = $db->execute('return db.system.profile.find();');
echo '<pre>' . print_r($array, true);但我得到的是:
Array
(
[retval] => Array
(
[value] => DBQuery: myapp_db.system.profile -> undefined
)
[ok] => 1
)分析功能已启用,并且在客户端运行良好。
发布于 2013-02-10 09:17:24
Method MongoDB::setProfilingLevel -设置此数据库的性能分析级别
<?php
$dbname = 'students';
$mongo = (new MongoClient());
$db = $mongo->$dbname;
# 0 (off), 1 (queries > 100ms), and 2 (all queries)
$db->setProfilingLevel(2);
# …
# Some queries
# …
$response = $db->system->profile->find();
foreach ($response as $query) {
print_r($query);
}另外:
通常很有用
发布于 2013-04-09 05:23:23
当您可以使用JavaScript本身时,不需要在PHP中执行阻塞服务器/数据库的查询:
$mongo = new MongoClient();
// Alternatively, use selectCollection from $mongo->myapp_db
$collection = $mongo->selectCollection('myapp_db', 'system.profile');
foreach ($collection->find() as $document) {
print_r($document);
}这可以更有效地使用内存,因为您可以遍历结果,而不是在单个数组中获取整个MongoDB::execute()响应。
此外,原始代码从JavaScript返回光标(一个DBQuery对象)。为了确保与其他驱动程序的兼容性,您应该在返回之前调用cursor.toArray()。在Sammaye对类似问题here的回答中讨论了这一点。
https://stackoverflow.com/questions/14763979
复制相似问题