2013-02-11 2 views
0

PHP를 사용하여 MongoDB에 문서를 추가하고 있습니다.Mongo에서 결과 얻기

RockMongo를 사용하여 문서가 성공적으로 추가되었는지 확인했습니다. 내가 찾기를 실행하면

그러나,() 명령, 그것은 하늘의 배열

$insert = $collection->insert($document); 
$cursor = $collection->find(); 

삽입은 (문서를 삽입하지만, 찾을 수) 반환에게 반환 "MongoCursor 개체()"

인가 항목을 찾을 수 있도록하기 위해 삽입 후 실행해야하는 명령이 있습니까?

+1

find()는 반복 한 커서를 리턴합니다 (getNext() 메소드를 시도하십시오). –

답변

2

문서에서 가져온대로 : find는 리소스에 대한 포인터를 반환하고 실제로 결과를 보려면 결과를 반복해야합니다. (단지 MySQL은 같은 (I)) http://php.net/manual/en/mongocollection.find.php

<?php 

$m = new MongoClient(); 
$db = $m->selectDB('test'); 
$collection = new MongoCollection($db, 'produce'); 

// search for fruits 
$fruitQuery = array('Type' => 'Fruit'); 

$cursor = $collection->find($fruitQuery); 
foreach ($cursor as $doc) { 
    var_dump($doc); 
} 

// search for produce that is sweet. Taste is a child of Details. 
$sweetQuery = array('Details.Taste' => 'Sweet'); 
echo "Sweet\n"; 
$cursor = $collection->find($sweetQuery); 
foreach ($cursor as $doc) { 
    var_dump($doc); 
} 

?> 

당신 foreach는 결과를 통해한다면, 그것은 잘 작동합니다!

+2

더 정확하게 말하면, 반복기의 MongoCursor 인스턴스를 리턴 한 다음 서버의 커서로 정의 된 자원에 링크합니다 . 실제로 자원을 직접 리턴하지는 않습니다. – Sammaye