sql >> Databasteknik >  >> NoSQL >> MongoDB

Php går rekursivt in i kategorier till MongoDB

EDIT:Med alla nya uppgifter förstår jag tydligt vad du försöker uppnå.

Så jag redigerade bort min gamla funktion, det här är en ny som borde fungera bra i din kod. Meddela mig så att jag kan justera om det behövs.

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. Mongoose, sortera baserat på främmande/befolkad nyckel

  2. MongoDB - $setIsSubset-operatören fungerar inte med $match stage

  3. Hur får man Node-objekt när man använder Neo4j jdbc?

  4. När ska man använda Singleton vs Transient vs Request med Ninject och MongoDB