sql >> Databáze >  >> NoSQL >> MongoDB

Php Rekurzivní zadávání kategorií do MongoDB

EDIT:Se všemi novými údaji jasně chápu, čeho se snažíte dosáhnout.

Takže jsem upravil svou starou funkci, toto je nová, která by měla fungovat ve vašem kódu. Dejte mi vědět, abych se mohl v případě potřeby upravit.

public function setCategories($user_id)
{
    $api = new ApiCategory($user_id);
    $cats = $api->getCategories(); // retrieves structure above

    $newCats = null;
    self::recursiveCatTree($newCats, $cats);
    $this->categories = $newCats;

    $this->save(); // save the entire array of embedded documents

    if($this->getErrors())
        var_dump($this->getErrors);

}

public static function recursiveCatTree(&$result, $parent)
{
    $children = $parent['children'];

    //we unset the children so we dont have manually set every other variable
    unset( $parent['children']);
    $result = new Category();
    $result->attributes = $parent;

    //then loop the children, if no children it wont loop
    // so it will just be an empty    array
    foreach($children as $child)
    {
       $baby = null;
       self::recursiveCatTree($baby, $child);
       $result->children[] = $baby;
    }

}



  1. Sestavení indexu MongoDB – Zabránění uživatelům ve spouštění nových sestavení

  2. Hodnota data a času MongoDB se neukládá správně

  3. Indexování pole/subobjektu v mongoDB způsobuje chybu duplicitního klíče

  4. Převeďte pole MongoDB z řetězce na ISODate v poli