sql >> Database teknologi >  >> NoSQL >> MongoDB

Php Rekursiv indtastning af kategorier til MongoDB

EDIT:Med alle de nye data forstår jeg tydeligt, hvad du forsøger at opnå.

Så jeg redigerede min gamle funktion, dette er en ny, der burde fungere lige i din kode. Giv mig besked, så jeg kan justere, hvis det er nødvendigt.

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. mongodb gruppe og undergruppe tæller

  2. Mongoose-aggregat returnerer tomt resultat

  3. Få sidst indsatte dokument-id i MongoDB med Java-driver

  4. MongoDB i 2018 - A Year in Review