Получение результатов из MongoDB с PHP (работа с командной строкой) - PullRequest
4 голосов
/ 26 сентября 2011

Я пытаюсь получить простую коллекцию, делая следующее:

<?php
echo "<pre>";
$mongo = new Mongo();
var_dump($mongo);
$db = $mongo->testdb;
var_dump($db);

$cursor = $db->users->find();

var_dump($cursor);
?>

И я получаю следующий вывод:

object(Mongo)#1 (4) {
  ["connected"]=>
  bool(true)
  ["status"]=>
  NULL
  ["server":protected]=>
  string(0) ""
  ["persistent":protected]=>
  NULL
}
object(MongoDB)#2 (2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(10000)
}
object(MongoCursor)#4 (0) {
}

ЕСЛИ в командной строке я делаю это:

use testdb;
db.users.find();

Я получаю:

{ "_id" : ObjectId("4e7fca596803fa4b53000000"), "username" : "test4", "password" : "md5pass", "email" : "test4@email.tld", "group" : 1, "profile_fields" : "a:0:{}" }
{ "_id" : ObjectId("4e7fca6e6803fa4a53000000"), "username" : "test4", "password" : "md5pass", "email" : "test4@email.tld", "group" : 1, "profile_fields" : "a:0:{}" }
{ "_id" : ObjectId("4e7fca726803fa4a53000001"), "username" : "test4", "password" : "md5pass", "email" : "test4@email.tld", "group" : 1, "profile_fields" : "a:0:{}" }
{ "_id" : ObjectId("4e7fca736803fa4a53000002"), "username" : "test4", "password" : "md5pass", "email" : "test4@email.tld", "group" : 1, "profile_fields" : "a:0:{}" }
{ "_id" : ObjectId("4e7fcae26803fa4c53000000"), "username" : "test4", "password" : "md5pass", "email" : "test4@email.tld", "group" : 1, "profile_fields" : "a:0:{}" }
{ "_id" : ObjectId("4e7fcb076803fa4953000000"), "username" : "test1", "password" : "md5pass", "email" : "test1@email.tld", "group" : 1, "profile_fields" : "a:0:{}" }

Что я делаю не так?

Заранее спасибо!

1 Ответ

5 голосов
/ 26 сентября 2011

Сделайте foreach на Курсоре в вашем первом примере.

Причина, по которой вы ничего не видите в var_dump, заключается в том, что это resource. Ресурсы являются указателями, они не содержат реальных данных сами по себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...