MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

सिम्फनी क्वेरीबिल्डर ऑब्जेक्ट सरणी के बजाय मोंगोडीबी कर्सर लौटा रहा है

प्रश्नों को पुनरावृत्त करने के लिए आपको उत्सुक MongoDB कर्सर की आवश्यकता है। मैं आपके कोड को आपके लिए आसान बनाने के लिए संपादित कर रहा हूँ:

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();
    }
}

अब आप सभी परिणामों के साथ परिणाम को अंदर की वस्तुओं के रूप में पुनरावृति कर सकते हैं।

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;
}

ऐसा करने का यह सबसे अच्छा तरीका है, कभी-कभी toArray() विधि को कॉल करना पर्याप्त है, लेकिन हमेशा काम नहीं करता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ईबीएस भंडारण के लिए एडब्ल्यूएस ईसी 2 इंस्टेंस पर स्थापित मोंगोडीबी का भंडारण स्थान सेट करें। और इंस्टेंस बंद/समाप्त होने के बाद मैं इसे कैसे पुनर्प्राप्त कर सकता हूं?

  2. mgo . के साथ एक प्रकार की मैपिंग लागू करें

  3. MongoDB में 2 फ़ील्ड के योग के साथ कैसे छाँटें?

  4. MongoDB में विशेष सरणी तत्व को कैसे अपडेट करें

  5. जावा प्रोजेक्ट को मोंगोडब डेटाबेस से कनेक्ट करें