2014-01-09 2 views
0

Это моя первая публикация здесь в stackoverflow. Я надеюсь, кто-то может помочь мне с моей проблемой с mongoDB PHP. Я больше из PHP mySql, но нам вдруг нужно было переключиться на mongoDB. Ниже приведена проблемная ситуация в большинстве объяснений, которые я могу дать.PHP mongoDB отличный выбор

Представьте, что в mysql у меня есть таблица с именем «фотографии» с тремя полями (img_id, owner_id и file_path). И с записью ниже:

Запись # 1: 1 --- 1 --- image01.jpg

Запись # 2: 2 --- 2 --- image02.jpg

Запись # 3: 3 --- 2 --- image03.jpg

Тогда я еще одна таблица с именем "пользователи" с 2-мя полями (user_id, FullName) с записями ниже:

Запись # 1: 1 --- Jhon Doe

Запись # 2: 2 --- Марк Кейн

Все, что мне нужно, чтобы отобразить результаты аналогичны ниже:

1.) John Doe имеет Изображение и изображение этого изображения . - image01.jpg

2.) Марк Кейн имеет изображения и изображения идентификаторы и . - image01.jpg, image02.jpg

Пожалуйста, дайте мне знать, как это должно быть сделано в mongoDB PHP. Заранее спасибо.

ответ

0
$m = new Mongo(); 
$collection = $m->users; 
$collection1 = $m->photos; 
$cursor = $collection->find(); 
$cursor1 = $collection1->find(); 

$count = 0; 
$result = array(); 
$path = array(); 
$str = ""; 
$str1 = ""; 
foreach($cursor as $obj){ 
    foreach($cursor1 as $obj1){ 
     if($obj['user_id'] == $obj1['owner_id']){ 
      $result[$count] = $obj1['img_id']; 
      $path[$count] = $obj1['file_path'];   
      $count++; 
     } 
    } 
    if($count > 1){ 
     for($i = 0; $i < $count; $i++){ 
      $str .= $result[$count]." and "; 
      $str1 .= $path[$count]." , "; 
     }  
    } 
    else{ 
     $str = $result[0]; 
     $str1 = $path[0]; 
    } 
    print "$obj['fullname'] has $count image and the image id is $str - $str1 ."; 
} 

Надежда выше блок кода дает желаемый результат, код не проверял, поэтому некоторые компилятор или синтаксические ошибки могут быть там, но я надеюсь, что вы можете их решить.

Смежные вопросы