• 26-05-2013, 19:26:01
    #1
    selamlar,
    mongodb ile text search yapmaya çalışıyorum,altdaki kod ile arayabiliyorum fakat php ye uyarlayamadım.

    db.books.runCommand( "text", { search "dauglas adams" } )
  • 26-05-2013, 19:56:53
    #2
    Hiç kullanmadım ama koddan anladığım kararıyla şöyle oluyor;

    db.books.runCommand( "arama yapılacak tablo", { search "aranacak kelime" } )
  • 26-05-2013, 20:01:27
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    http://www.php.net/manual/en/mongodb.execute.php
  • 26-05-2013, 20:54:58
    #4
    teşekkür ederim,execute ile print edebildim,
    bu çıktıdan sadece title kısmını nasıl parselleyebilirim acaba ?

    Array
    (
        [queryDebugString] => kozmoloji||||||
        [language] => english
        [results] => Array
            (
                [0] => Array
                    (
                        [score] => 0.66666666666667
                        [obj] => Array
                            (
                                [_id] => MongoId Object
                                    (
                                        [$id] => 51a264500ec3e26f1e2a7cea
                                    )
    
                                [title] => Kozmoloji
                                [description] => Kozmoloji adına her şey !.
                            )
    
                    )
    
                [1] => Array
                    (
                        [score] => 0.66666666666667
                        [obj] => Array
                            (
                                [_id] => MongoId Object
                                    (
                                        [$id] => 51a264a70ec3e2fb22cb76d0
                                    )
    
                                [title] => Ceviz Kabuğundaki Evren
                                [description] => Kozmoloji - Fizik - Hawking
                            )
    
                    )
    
            )
    
        [stats] => Array
            (
                [nscanned] => 2
                [nscannedObjects] => 0
                [n] => 2
                [nfound] => 2
                [timeMicros] => 93
            )
    
        [ok] => 1
    )
  • 27-05-2013, 01:55:15
    #5
    Sanırım mysql'de LIKE komutunun karşılığını mongoDB'de uygulamaya çalışıyorsunuz. Bunun için MongoRegex kullanabilirsiniz.

    Aşağıda kendi mongo db veritabanımda daha önce kullandığım bir örnek paylaşıyorum. users isimli collection içerisinde adı İbrahim olan kişileri bu kod ile çekebilirsiniz.

    $users = $this->db->users;
            
    $search = new MongoRegex('/^İbrahim/i');
    $records = $users->find(array('firstName' => $search));
    
    foreach($records AS $row) 
    {
       echo '<pre>';
       print_r($row);
       echo '</pre>';
    }
  • 28-05-2013, 17:05:36
    #6
    OfisSoft adlı üyeden alıntı: mesajı görüntüle
    Sanırım mysql'de LIKE komutunun karşılığını mongoDB'de uygulamaya çalışıyorsunuz. Bunun için MongoRegex kullanabilirsiniz.

    Aşağıda kendi mongo db veritabanımda daha önce kullandığım bir örnek paylaşıyorum. users isimli collection içerisinde adı İbrahim olan kişileri bu kod ile çekebilirsiniz.

    $users = $this->db->users;
            
    $search = new MongoRegex('/^İbrahim/i');
    $records = $users->find(array('firstName' => $search));
    
    foreach($records AS $row) 
    {
       echo '<pre>';
       print_r($row);
       echo '</pre>';
    }
    teşekkür ederim,çıktıdan istediğim kısmı nasıl alabilirim ?
    yani hepsini bastırmak yerine sadece title kolonunu bastırmak istiyorum.
  • 28-05-2013, 21:40:00
    #7
    Asynchronous adlı üyeden alıntı: mesajı görüntüle
    teşekkür ederim,çıktıdan istediğim kısmı nasıl alabilirim ?
    yani hepsini bastırmak yerine sadece title kolonunu bastırmak istiyorum.
    Eğer tek bir kayıt çekmek istiyorsan findOne kullanabilirsin. http://php.net/manual/en/mongocollection.findone.php burada detaylar var.

    Eğer dönen sonuçların içerisinde dizi olarak bir index'i çağırmak istersen;

    $users = $this->db->users; 
             
    $search = new MongoRegex('/^İbrahim/i'); 
    $records = $users->find(array('firstName' => $search))
    $records = iterator_to_array($records,false);
    
    // 1. Eleman
    print_r($records[0]);
    
    // 2. Eleman
    print_r($records[1]);