0

これについて何か助けていただければ幸いです。私はさまざまな方法を試してきましたが、このアプローチは非常に複雑であることがわかりました。まだ機能するソリューションがないため、もっと簡単かもしれません。Parse.com コミュニティに問い合わせましたが、まだ回答がありません。

私のデータストア (parse.com) には 2 つのクラス/テーブルがあります。食品の種類と食品。Food Type と Food Items の間には 1 対多の関係があります。たとえば、Produce は Class Food Type の (オブジェクト「name」の) 属性であり、それに関連する多くの Food Item (リンゴ、バナナ、レタスなど) があります。これは、データストアで正しく構造化されています。

データストアでは、Food Type に color、foodItemId (関係)、および name の 3 つのオブジェクトがあります。Name は食品タイプの名前を指します。たとえば、Produce、Color は名前と foodItemId に割り当てた色です。関係をクリックすると、テストのために現時点で果物の束を追加しました。

Food Item クラスには、expiry、keyworkType (果物、野菜、その他のいずれであるかを示す)、名前、および写真の 4 つのオブジェクト/要素があります。これらは一目瞭然です。

私がやりたいことは、ユーザーがアイテムを在庫に追加したいときに、食品の種類 (例: 農産物) を選択することです > その食品の種類のすべての食品を印刷するページに移動します (例: クエリ特定の食品タイプに属するすべての食品を取得します)。

だから私が実際にやろうとしているのは、食品の種類を一致させることです-「名前」をユーザーが入力したもの(この場合は生産)に一致させます>次に、その食品の種類に属するすべての食品アイテムを取得します。したがって、Food Type の「子」であるすべての Food Item オブジェクトを取得したいと考えています。次に、返された Food Item を操作して、好きなように操作できるようにします。

要するに、私が試したすべてが機能していないので、助けていただければ幸いです。

みんなありがとう、

ギア

4

1 に答える 1

0

それを確認してください... 私は答えを見つけたと思っていましたが、間違っていることが判明しました。それ以来、私は答えを見つけました(これはあなたが必要とするコードです-この参照は役に立ちました!!! https://www.parse.com/questions/can-i-use-include-in-a-query-to-include -all-members-of-a-parserelation-error-102およびhttps://parse.com/docs/js/symbols/Parse.Relation.html ):

//create an array that will hold all the unique KeywordsTypes in it.
// This will be sent to another method to print out items that are in a KeywordType.
var keyword_type_array = new Array();

//get the info out of the db and then set it in the variables
var FoodType = Parse.Object.extend("Food_Type");
var FoodItem = Parse.Object.extend("Food_Item");    

//we want to find the Food Items that belong to a Food Type.
var query = new Parse.Query(FoodType);  

// so make it so the inner query actually says find the matching food type
query.equalTo("name", food_type);
query.first({
    success: function(results) {
        // get the results (object) and put them in a variable which will be used with relation
        var innerQuery = results;
        //make it a relational query.. aka.. find for the Food Type returned, the foodItemId and all that are in that corrospond to that field.
        var relation = innerQuery.relation("foodItemId"); //https://www.parse.com/questions/can-i-use-include-in-a-query-to-include-all-members-of-a-parserelation-error-102
        //run the relational query.
        relation.query().find({
            success: function(theFoodItems) {
                for (var i = 0; i < theFoodItems.length; i++) {             
                    //add all keywordTypes to the keyword type array. We will go through and get unique types out.
                    keyword_type_array[i] = theFoodItems[i].get("keywordType");                             
                }

                // create a new array that will hold all unique keyword types.
                var unique_keywords = new Array();

                // get unique keywords types.
                for (var i = 0; i < keyword_type_array.length; i++) {
                    var unique = true;

                    for (var j = 0; j < unique_keywords.length; j++) {
                        if (keyword_type_array[i] == unique_keywords[j]) {
                            unique = false;
                            break;
                        }                   
                    }

                    if (unique) {
                        // if a keyword is found to be unique.. put that keyword in the array.
                        unique_keywords.push(keyword_type_array[i]);                    
                    }
                }

                // So now we know what we need to print, lets call a function to print them.
                print_view_sections(unique_keywords);

            },
            error: function(object, error) {
                // The object was not retrieved successfully.
                // error is a Parse.Error with an error code and description.
                alert("Error: " + error.code + " " + error.message)
            }
        });
    },
    error: function(object, error) {
        // The object was not retrieved successfully.
        // error is a Parse.Error with an error code and description.
        alert("Error: " + error.code + " " + error.message)
    }
});
于 2013-06-05T12:53:12.737 に答える