2015-08-15 341 views
0

我正在與解析的JS-SDK工作中的對象的項目,並具有如下的數據結構的數據庫:包括從指針對象,它是一個數組

{"ingredients": 
    [ 
    {"amount": 100, "name": "sugar", "unit": {"__type":"Pointer","className":"Unit","objectId":"xxxxxxxxxxx"}}, 
    {"amount": 300, "name": "milk", "unit": {"__type":"Pointer","className":"Unit","objectId":"xxxxxxxxxxx"}} 
    ] 
} 

「的成分」是陣列食譜類的列。

我該如何查詢配方以包含「單位」 - 對象?這是我到目前爲止:

var Recipe = Parse.Object.extend("Recipe"), 
    RecipeQuery = new Parse.Query(Recipe); 
RecipeQuery.include("ingredients"); 
RecipeQuery.include("ingredients.unit"); 
RecipeQuery.find(...); 

我希望有人能幫助我在這裏,這將不勝感激!

回答

0

如果你的數據結構是這樣的:

{"ingredients": 
    [ 
    {"__type":"Pointer", "className":"Unit", "objectId":"FKxndF7X9H"}, 
    {"__type":"Pointer", "className":"Unit", "objectId":"mXVGZDglZN"} 
    ] 
} 

然後你就可以只使用recipeQuery.include("ingredients");採取這些單位。它將檢索數組中的所有嵌套對象。但是,如果您將字典放入數組中,則此方法不起作用。

我認爲一個解決辦法是建立在Recipe稱爲units一個新的數組字段。這從ingredients陣列中得到unit。所以你將有兩個陣列ingredientsunits

其他的解決方案可能是創建一個新的類。像Ingredient其中有name,amountunit字段。 ingredients數組將包含指向Ingredient對象的指針。

+0

首先,thx爲您的答案。 你的第一個解決方案不會幫助我,因爲我會失去跟蹤哪個成分有哪個單位。 我也想過第二種解決方案(通過成分類),但我仍然希望有可能避免這種情況;) – Argee

+0

你實際上不會失去跟蹤哪種成分有哪個單位。填充單位數組時,使用配料數組的相同順序。成分[0]單位將以[0]爲單位。 – knshn

+0

哦,當然,你是對的!我明天會給它一個鏡頭! – Argee