2012-06-14 3 views
-1

Я следующий код для запуска Монго запроса, где «mongotester» это имя БД и «категории» это имя коллекцииMongoDB ошибка выполнения функции

Я использую библиотеку PECL MongoDB

$m = new Mongo(); 
$db = $m->selectDB('mongotester'); 
$a = $db->execute('return mongotester.categories.count();'); 
echo "<pre>"; 
var_dump($a); 
echo "<pre>"; 

Когда я бегу это, я получаю следующее сообщение об ошибке,

array(3) { 
    ["errno"]=> 
    float(-3) 
    ["errmsg"]=> 
    string(78) "invoke failed: JS Error: ReferenceError: mongotester is not defined  nofile_a:0" 
    ["ok"]=> 
    float(0) 
} 

Пожалуйста, помогите мне исправить это.

благодаря

phpqa.in

ответ

1

Вместо того, чтобы выполнить() JavaScript для подсчета, вы можете ссылаться на сбор непосредственно, например:

$m = new Mongo(); 
$db = $m->selectDB('mongotester'); 
$a = $db->categories->count(); 
echo "<pre>"; 
var_dump($a); 
echo "<pre>"; 

var_dump в этом случае просто будет для отображения int (0), если вы фактически не ввели некоторые данные в категории .

+0

Я знаю об этом методе, я хочу использовать функцию «уменьшить», чтобы найти счет, основанный на языке запросов MongoDB. –

+0

Ваш пример кода с «execute()» на самом деле не имеет ничего общего с MapReduce. Посмотрите на пример [MongoDB :: command() MapReduce] (http://php.net/manual/en/mongodb.command.php) в документации PHP. – Stennie

Смежные вопросы