簡體   English   中英

無法從MongoDb檢索數據

[英]Can't retrieve data from MongoDb

檢索邏輯是這樣的... 有一個用戶集合,每個用戶我將一個包含文件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的客戶關聯數組已更新。

這是該代碼。 誰能說出查詢的問題是什么,或者我需要做些什么才能做,我想要什么。 (檢索屬於特定客戶的文件)

$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));

一個嚴重的錯誤,是通過cust_id搜索col_trace_info,而需要通過_Id搜索,這是收集跟蹤的主鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM