Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Mongodb 未捕获异常';MongoCursorException';带着信息。。。。重复键错误索引:_Mongodb_Indexing_Key_Duplicates - Fatal编程技术网

Mongodb 未捕获异常';MongoCursorException';带着信息。。。。重复键错误索引:

Mongodb 未捕获异常';MongoCursorException';带着信息。。。。重复键错误索引:,mongodb,indexing,key,duplicates,Mongodb,Indexing,Key,Duplicates,这是我的密码: 当我尝试使用它时,出现了一个错误: "Fatal error: Uncaught exception 'MongoCursorException' with message 'localhost:27017: E11000 duplicate key error index: futbol_db.maclar.$kod_1_link_1 dup key: { : null, : null }' in /var/www/html/cagkansokmen/futbol

这是我的密码:

当我尝试使用它时,出现了一个错误:

 "Fatal error: Uncaught exception 'MongoCursorException' with message
 'localhost:27017: E11000 duplicate key error index: 
  futbol_db.maclar.$kod_1_link_1 dup key:
  { : null, : null }' in /var/www/html/cagkansokmen/futbol/db/maclar.php:182 
  Stack trace: #0 /var/www/html/cagkansokmen/futbol/db/maclar.php(182):    
  MongoCollection->insert(Array) #1 {main} thrown in 
  /var/www/html/cagkansokmen/futbol/db/maclar.php on line 182"
问题在于插入。因为,当我删除插入代码时,这段代码没有问题。但如果我尝试插入数据,正如我所说的,会出现错误

我怎样才能修好它

$collection1 = $db->lig_kod;
$collection_maclar = $db->maclar;
    $collection1->ensureIndex(array("kod" => 1, "link" => 1), array("unique" => true, "dropDups" => true));

    $a = $collection1->find(array())->limit(15)->skip(0);
    foreach($a as $b){
    $kod = $b["kod"];
    $link = $b["link"];

        $parc = explode(',', $link);
        $ligkoduson = $parc[0].",".$parc[1];
    $url2 = "http://www.stats.betradar.com/s4/gismo.php?&html=1&id=1424&language=tr&clientid=35&state=".$ligkoduson.",5_".$kod.",9_fixtures,231_fixtures,23_1,242_21&child=0";
        $url2 = curl($url2);
        $url2 = str_replace("\t","",$url2);
        $url2 = str_replace("\n","",$url2);
        $url2 = str_replace("\r","",$url2);

        $bul = ara("<![CDATA[", "]]>", $url2);
        $sonuc = ara("setState('", ",", $bul[0]);
        $say = count($sonuc);

        for($i = 0; $i<$say; $i++){
        $sezonbul = $sonuc[$i];

        $lonk = "http://www.stats.betradar.com/s4/gismo.php?&html=1&id=2127&language=tr&clientid=35&state=".$ligkoduson.",".$sezonbul.",9_fixtures,231_full,23_1&child=2";
        $fiksturlink = curl("http://www.stats.betradar.com/s4/gismo.php?&html=1&id=2127&language=tr&clientid=35&state=".$ligkoduson.",".$sezonbul.",9_fixtures,231_full,23_1&child=2");

        $fiksturlink = str_replace("\t","",$fiksturlink);
        $fiksturlink = str_replace("\n","",$fiksturlink);
        $fiksturlink = str_replace("\r","",$fiksturlink);

        $kategori = ara('title="', '"', $fiksturlink);
        $kategori_parcala = explode(' &gt; ', $kategori[0]);
        $tur = trim($kategori_parcala[0]);
        $ulke = trim($kategori_parcala[1]);
            $lig = $kategori_parcala[2];
            $lig_parcala = explode(' ', $lig);
            $lig_bosluk = count($lig_parcala)-1;
        $sezon = trim($lig_parcala[$lig_bosluk]);
        $lig_son = trim(str_replace($sezon, "", $lig));


            $takimlar = ara('<span class="teams">', '</a>', $fiksturlink);
            $timebul = ara('<td class="datetime">', '</td>', $fiksturlink);
            $fhbul = ara('<td class="p1 ">', '</td>', $fiksturlink);
            $ftbul = ara('<td class="nt ftx ">', '</td>', $fiksturlink);
            $dongusay = count($takimlar);
        echo $dongusay."<br>";
        for($dongu = 0; $dongu<$dongusay; $dongu++){
            $takimlarbul = ara('">', '</span>', $takimlar[$dongu]);

            $home = trim($takimlarbul[0]);
            $away = trim($takimlarbul[2]);
                $time = trim($timebul[$dongu]);
                $time_ayir = explode(' ', $time);
                $yil_ayir = explode('/', $time_ayir[0]);
                    $gun = $yil_ayir[0];
                    $ay = $yil_ayir[1];
                    $yil = $yil_ayir[2];
                $saat_ayir = explode(':', $time_ayir[1]);
                    $saat = $saat_ayir[0];
                    $dk = $saat_ayir[1];
            $time_sonuc = mktime($saat, $dk, 0, $ay, $gun, $yil);
            $fh = trim($fhbul[$dongu]);
                if(empty($fh)){
                $fh1 = null;
                $fh2 = null;
                }else{
                $fh_ayir = explode(':', $fh);
                $fh1 = $fh_ayir[0];
                $fh2 = $fh_ayir[1];
                }
            $ft = trim($ftbul[$dongu]);
            if(empty($ft)){

                $ft1 = null;
                $ft2 = null;

            }else{
                if(strpos($ft, '(')){

                    $parcala1 = explode('(', $ft);
                    $ft_ayir = explode(':', $parcala1[0]);
                    $ft1 = $ft_ayir[0];
                    $ft2 = $ft_ayir[1];

                }else{

                    $ft_ayir = explode(':', $ft);
                    $ft1 = $ft_ayir[0];
                    $ft2 = $ft_ayir[1];
                }
            }
        echo $ligkoduson."-".$sezonbul."-".$tur."-".$ulke."-".$lig_son."-".$sezon."-".$home."-".$away."-".$time_sonuc."-".$fh1."-".$fh2."-".$ft1."-".$ft2."<br>";

        $collection_maclar->insert(array(
        'ulke_kodu'=>$ligkoduson,
        'sezon_kodu'=>$sezonbul,
        'tur'=>$tur,
        'ulke'=>$ulke,
        'lig'=>$lig_son,
        'sezon'=>$sezon,
        'home'=>$home,
        'away'=>$away,
        'tarih'=>$time_sonuc,
        'fh1'=>$fh1,
        'fh2'=>$fh2,
        'ft1'=>$ft1,
        'ft2'=>$ft2
        ));
        }
        }

        }
$collection1=$db->lig_kod;
$collection_maclar=$db->maclar;
$collection1->ensureIndex(阵列(“kod”=>1,“链接”=>1)、阵列(“唯一”=>true,“dropDups”=>true));
$a=$collection1->查找(数组())->限制(15)->跳过(0);
foreach($a为$b){
$kod=$b[“kod”];
$link=$b[“link”];
$parc=分解(“,”,$link);
$ligkoduson=$parc[0]。“,”$parc[1];
$url2=”http://www.stats.betradar.com/s4/gismo.php?&html=1&id=1424&language=tr&clientid=35&state=“$ligkoduson.”,5“$kod.”,9_固定装置,231_固定装置,23_1242_21&child=0”;
$url2=旋度($url2);
$url2=str_replace(“\t”,”,$url2);
$url2=str_replace(“\n”、”、$url2);
$url2=str_replace(“\r”,”,$url2);
$bul=ara(“,$url2);
$sonuc=ara(“设置状态('”,“,”,$bul[0]);
$say=count($sonuc);
对于($i=0;$iinsert(数组(
“ulke_kodu”=>ligkoduson美元,
“sezon_kodu”=>sezonbul美元,
“tur”=>美元tur,
“ulke”=>$ulke,
‘lig’=>$lig_-son,
“sezon”=>$sezon,
“home”=>$home,
'away'=>away美元,
“tarih”=>time\u sonuc,
“fh1”=>fh1美元,
“fh2”=>fh2美元,
“ft1”=>ft1美元,
“ft2”=>ft2美元
));
}
}
}

您在“kod”和“link”上有一个唯一的索引,但您插入的文档不包括这两个字段名

这意味着您插入的第一个文档将这些值设置为null,第二个文档也将设置为null。但由于它忽略了您创建的唯一索引,因此将失败

请注意,随ensureIndex()命令提供的“dropDupe”标志仅表示“删除现有副本”,而不是“如果我再次尝试使用该键,请删除上一个文档”

您当前的代码似乎确保了“lig_kod”集合上的索引,但我怀疑您以前(可能是意外)使用了$collection_maclar变量,而不是$collection1变量并执行了代码,从而在maclar集合上创建了索引


-Hannes

从错误中可以看出,您有一个唯一的索引,并且您正试图在没有索引字段的情况下插入第二个文档(即,对于索引中的此文档,再次插入“null”),从而导致索引中出现重复键异常。可能重复