Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t从MongoDb检索数据_Php_Mongodb_Yii - Fatal编程技术网

Php Can';t从MongoDb检索数据

Php Can';t从MongoDb检索数据,php,mongodb,yii,Php,Mongodb,Yii,检索逻辑是这样的有一个用户集合,与每个用户关联一个数组[],其中包含文件的ID 我还有另一个集合TraceInfo,包含实际文件及其各自的ID。 我用这个逻辑检索有关文件的信息。。这绝对是个好办法 $doc = $this->col_users->findOne(array('_id'=>$this->options['user_id']), array($array_name=>True)); $doc[$array_name] = (isset($doc

检索逻辑是这样的有一个用户集合,与每个用户关联一个数组[],其中包含文件的ID

我还有另一个集合TraceInfo,包含实际文件及其各自的ID。 我用这个逻辑检索有关文件的信息。。这绝对是个好办法

$doc = $this->col_users->findOne(array('_id'=>$this->options['user_id']), array($array_name=>True));
    $doc[$array_name] = (isset($doc[$array_name])) ? $doc[$array_name] : array();

    $cursor = $this->col_trace_info ->find(array('_id'=>array('$in'=>$doc[$array_name])), 
                                            array('name'=>True, 'size'=>True, 'notes'=>True, 'shared_flag'=>True, 'is_radius'=>True))
                                    ->sort(array('_id'=>-1));
    $file_list = array();
    if($cursor->count() > 0)
        foreach ($cursor as $doc) {
            if ($iteration_method == 'get_file_object') {
                if ($shared_in)     $doc['shared_in'] = True;
                else                $doc['shared_in'] = False;
                $file_list[] =      $doc;
            }
            else if ($iteration_method == 'is_valid_file_object') {
                $file_list[] = $doc['_id'];
            }
        }

    return array_values(array_filter(array_map(
        array($this, $iteration_method),
        $file_list
    )));
我所做的唯一更改是,现在我想存储相同的文件ID[]也是客户集合,n检索属于同一客户的文件

这是我修改过的代码部分,但它似乎不起作用。。。我猜错误可能在查询中,我检查了UMONGO,客户的关联数组包含更新的文件ID

这是代码。 有谁能告诉我这个查询出了什么问题,或者我需要做什么样的更改来实现我的愿望。(检索属于特定客户的文件)

错误的是,按客户id搜索列跟踪信息,而需要按id搜索,这是跟踪收集的主键

$doc = $this->col_customers->findOne(array('cust_id'=>$this->options['cust_id']), array($array_name=>True));
    $doc[$array_name] = (isset($doc[$array_name])) ? $doc[$array_name] : array();

    $cursor = $this->col_trace_info ->find(array('cust_id'=>array('$in'=>$doc[$array_name])), 
                                            array('name'=>True, 'size'=>True, 'notes'=>True, 'shared_flag'=>True, 'is_radius'=>True))
                                    ->sort(array('cust_id'=>-1));
    $file_list = array();
    if($cursor->count() > 0)
        foreach ($cursor as $doc) {
            if ($iteration_method == 'get_file_object') {

                $file_list[] =      $doc;
            }
            else if ($iteration_method == 'is_valid_file_object') {
                $file_list[] = $doc['cust_id'];
            }
        }

    return array_values(array_filter(array_map(
        array($this, $iteration_method),
        $file_list
    )));
$cursor = $this->col_trace_info ->find(array('_id'=>array('$in'=>$doc[$array_name])), 
                                        array('name'=>True, 'size'=>True, 'notes'=>True, 'shared_flag'=>True, 'is_radius'=>True))
                                ->sort(array('_id'=>-1));