PHP mongoDB明显的选择

时间:2014-01-09 03:55:41

标签: php mongodb join distinct

这是我第一次在stackoverflow中发帖。我希望有人能帮我解决mongoDB PHP的问题。我更像是一个PHP mySql人,但我们突然需要切换到mongoDB。以下是我能给出的最多解释中的问题情况。

想象一下,在mysql中,我有一个名为“photos”的表,其中包含3个字段(img_id,owner_id和file_path)。并记录如下:

记录#1: 1 --- 1 --- image01.jpg

记录#2: 2 --- 2 --- image02.jpg

记录#3: 3 --- 2 --- image03.jpg

然后我有另一个名为“users”的表,其中包含2个字段(user_id,fullname),其中包含以下记录:

记录#1: 1 --- Jhon Doe

记录#2: 2 --- Mark Kane

我只需要显示类似于下面的结果:

1。) John Doe 的图片 1 ,图片ID 1 。 - 的 image01.jpg

2。) Mark Kane 2 图片,图片ID为 2 3 。 - image01.jpg,image02.jpg

请告诉我如何在mongoDB PHP中完成此操作。提前谢谢。

1 个答案:

答案 0 :(得分: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 .";
}

希望上面的代码块能够提供所需的结果,代码没有经过测试,因此可能存在一些编译器或语法错误,但我希望你能解决它们。