2016-07-25 11 views
1

コレクションの中で最後に挿入されたオブジェクトを返すには、PHPのコードブロックのように見えますか?これは私の関数ですが、適切なオブジェクトを返しません。PHP Mongo - コレクションの最後のオブジェクトを見つけよう

# Create connection instance 
     $this->mongo = new MongoClient($connection_string); 
     # Select database 
     $this->database = $this->mongo->selectDB($database_name); 

public function get_last($given_collection){ 
     $collection = $this->database->selectCollection($given_collection); 
     $data_object = $collection->find()->sort(array("id"=>1)); 
     return $data_object; 
    } 

答えて

0

これは非常に乱雑なコードですが、それは仕事です。誰かがこのコードを適切にフォーマットするための編集を提案したら、私はそれを受け入れます。

public function get_last($given_collection){ 
    $collection = $this->database->selectCollection($given_collection); 
    $js = "function() { 
     return this.id > 0 
    }"; 
    $cursor = $collection->find(array('$where' => $js))->limit(1)->sort(array('$natural'=>-1)); 
    foreach ($cursor as $doc) { 
     return $doc; 
    } 
} 
1

試してみてください。

$collection->find()->sort(array("_id"=>-1))->limit(1); 

これは降順に細かいショーデータを作業MongoDBのクエリです。

db.collection.find().sort({"_id":-1}).limit(1); 
関連する問題