MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Symfony QueryBuilder mengembalikan kursor MongoDB alih-alih array objek

Anda memerlukan kursor Eager MongoDB untuk mengulangi kueri. Saya akan mengedit kode Anda untuk memudahkan Anda:

class UserRepository extends DocumentRepository {
    public function getUserTemp($clauses = null)
    {
        /* Create query */

        $qb = $this->createQueryBuilder()->eagerCursor(true);

        /* Add clauses */

        if($clauses)
        {
            // It's a way to initialize the query, you can use a select or something similar
            $query = $qb->hydrate(true);

            if(isset($clauses['id']))
                $query -> field('id') -> equals($clauses['id']);

            if(isset($clauses['firstName']))
                $query -> field('firstName') -> equals($clauses['firstName']);

            if(isset($clauses['lastName']))
                $query -> field('lastName') -> equals($clauses['lastName']);

            if(isset($clauses['email']))
                $query -> field('email') -> equals($clauses['email']);

            if(isset($clauses['password']))
                $query -> field('password') -> equals($clauses['password']);
        }

        /* Return */

        return $query
            -> getQuery()
            -> execute();
    }
}

Sekarang Anda dapat mengulangi hasil dengan semua hasil sebagai objek di dalamnya.

private function getUserAction()
{
    $manager = $this -> get('doctrine_mongodb') -> getManager();
    $repository = $manager -> getRepository('LogAnalyzerCoreBundle:User');

    $users = $repository -> getUserTemp(array(
        'firstName' => 'First'
    ));
    //It's just an example, but here you can see how to get the query result data
    foreach($users as $user){
        $data[] = $user->getFirstName();
    }

    return $users;
}

Ini cara terbaik untuk melakukan ini, terkadang memanggil metode toArray() sudah cukup, tetapi tidak selalu berhasil.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hapus dokumen dari koleksi MongoDB berdasarkan waktu bidang Tanggal

  2. Mendapatkan data bersarang dari MongoDB ke dalam bingkai data Pandas

  3. Perbarui Elemen di Array

  4. MongoDB $binarySize

  5. Meteor:perbedaan antara nama untuk koleksi, variabel, publikasi, dan langganan?