2017-02-08 13 views
0

リレーショナルデータを照会:私はレシピを取得することができますFirebase私はFirebaseを使用して、次のように多対多の関係では「カテゴリ」と「レシピ」を持っているリレーショナル構造、持ってい

{ 
"categories": { 
    "<category_id_1>": { 
    "name": "Breakfast", 
    "imageUrl": "http://www.image.com/url", 
    "recipes": { 
     "<recipe_id_1>": true, 
     "<recipe_id_2>": true 
    } 
    } 
}, 
"recipes": { 
    "<recipe_id_1>": { 
    "title": "Sweet Potato & White Bean Chilli", 
    "cookingTime": 50, 
    "portionSize": "4-6", 
    "difficulty": "Easy", 
    "categories": { 
     "<category_id_1>": true, 
     "<category_id_2>": true 
    } 
    } 
} 
} 

/categories/<category_id_1>/recipesに行き、各レシピへの参照を得るためにループすることによってカテゴリを作成します。 /recipes/<recipe_id_1>

しかし、私が解決するのに苦労しているのは、難易度が「簡単」の朝食カテゴリにあるレシピをクエリ/フィルタリングする方法です。

リレーショナルデータのクエリに関する提案はありますか?

答えて

1

NoSQLではいつものように、必要なユースケースのデータをモデル化する必要があります。レシピのリストをカテゴリメタデータを混在させないでください:私はあなたのデータをネスト解除しました

{ 
"categories_complexities": { 
    "Breakfast_easy": { 
    "<recipe_id_1>": true, 
    "<recipe_id_7>": true 
    } 
}, 
} 

注:あなたが簡単に朝食のレシピの一覧を取得したいのであれば、あなたは簡単な朝食のレシピのリストを格納する必要がありますそのカテゴリの

+0

おかげで、この方法では、フィルタがたくさんあるときに、すべての異なる組み合わせのリストがたくさんあるときにはちょっと退屈なようです。Breakfast_easy、Breakfast_hard、Lunch_easy ....など私はちょうどそれを速くするそのようなデータを繰り返しても問題ありません。 –

関連する問題