sql >> Database >  >> NoSQL >> MongoDB

Php Recursief categorieën invoeren in MongoDB

EDIT:Met alle nieuwe gegevens begrijp ik duidelijk wat je probeert te bereiken.

Dus ik heb mijn oude functie aangepast, dit is een nieuwe die in je code zou moeten werken. Laat het me weten zodat ik het indien nodig kan aanpassen.

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. Upserting in Mongo DB met officiële C#-driver

  2. Een node js-app implementeren die mongo db op aws gebruikt

  3. Gebruik wait.for met nodejs en mongoskin om callback hell te voorkomen

  4. Wat moet ik kiezen:MongoDB/Cassandra/Redis/CouchDB?