MongoDB php返回游标中的值数组

时间:2014-06-01 08:07:38

标签: php mongodb

我有两个不同的选择:收藏夹照片。 它们看起来像这样:

收藏夹

{   
    "user_id" : "1234",
    "photo_id" :"123",
}

照片

{   
    "photo_id" : "123",
    "user_id" :"1234",
    "photo_url":"service/photos"
}

我想从给定的用户ID返回所有照片网址。 所以首先我选择了特定用户的照片ID 像这样的东西:

  // access database
  $db = $conn->$dbname;

  // access collection
  $favorits = $db->favorits;
  $fotos=$db->photos;
  $object= 
    array(
      "id_user" => id_user
    )

  $cursor = $favorits->find($object);

从这里开始,我试图获得一个具有该值的数组 photo_url字段。 我想我可以用foreach做点什么,但什么都没做 到目前为止工作。 谢谢你们!

编辑:得到它。不知道我能得到一些具体的价值观。这是我的解决方案:

// Config
$dbhost = 'localhost';  
$dbname = 'db_service';
$id_user = $_GET['id_user'];
// open connection to MongoDB server
$conn = new Mongo($dbhost);
// access database
$db = $conn->$dbname;
// access collection
$favorits = $db->favorits;
$photos=$db->photos;
$object= 
  array(
       "id_use"r => $id_user
  );
$cursor = $favoritos->find($object);
foreach($cursor as $document) { 
  $counter=0;
  $photoids[$counter]=$document['id_photo'];
  $photo=$photoids[$counter];
  $counter++;
  $object2= 
  array(
  "id_photo" => $photo
  );
  $photo_path=$photos->find($object2);
  foreach($photo_path as $row){
    $path_string=$row['path'];
    echo $path_string;
  }
}   

此代码回应了照片的路径。例如:service / img / app_photos

1 个答案:

答案 0 :(得分:0)

由于它们位于2个不同的集合中,因此您必须在每个收藏夹上使用PHP循环,并从照片集中获取照片URL。

但我认为,只需对文档设计进行微小更改,就可以完成所有工作,例如将照片网址放在您喜欢的位置。

类似的东西:

favorite
{   
    "user_id" : "1234",
    "type" : "photo",
    "resource" : {
      "photo_id" :"123",
      "photo_url":"service/photos"
    }
}

这将简化您的应用程序代码