12

MongoDB に対してクエリを実行していますが、最初のオブジェクトのみが必要です。を使用できることはわかっていますfindOneが、どこが間違っているのかまだ混乱しています。

これは動作しません:

if ($cursor->count() > 0) {
    $image = $cursor->current();
    // neither does this work
    // $image = $cursor[0]; 
    return $image;
} else {
    return false;
}   

//echo $image->filename;
// Throws error: Trying to access property of non-object image

これはうまくいきます:

if ($cursor->count() > 0) {
    $image = null;
    foreach($cursor as $obj)
        $image = $obj;
    return $image;
} else {
    return false;
}   
4

2 に答える 2

15

これはどう:

if ($cursor->count() > 0) {
    $cursor->next();
    $image = $cursor->current();
    return $image;
} else {
    return false;
}

おまけ: Doc ページからの引用

public array MongoCursor::current (void)
これは、MongoCursor::next() が呼び出されるまで NULL を返します。

于 2012-06-21T23:01:33.033 に答える