2017-01-11 12 views
1

クエリの配列の要素が別の配列の一部であるかどうかを調べるにはどうすればよいですか? followersの要素の任意の1つ以上がattendingに存在する場合である構文解析クエリで2つの配列を比較する

var followers = []; // Array of Parse User pointers query.howTo("attending", followers); // attending is an array of User Pointers.

、クエリが一致しなければなりません。

query.containsAllはすべての要素に一致します。 query.containsSomeのようなものはありますか?

+0

'containedIn'を使ってみましたか? –

+0

@NatanR。 https://parseplatform.github.io/Parse-SDK-JS/api/classes/Parse.Query.html#methods_containedIn これは、キーと値を比較するために使用されます。配列と配列を比較する必要があります。 – InfinitePrime

+0

ポインタの配列の代わりにリレーションを使用する方が良いでしょうか?両方の側に関係を加えることができるという事実の他に、より柔軟性があると思います。例:https://www.parse.com/questions/inverse-relationship-support –

答えて

1

2つの配列を照会できると確信していました。よりよく確認するためにドキュメントを見てください。

そうでない場合は、複合クエリを使用できます。

たとえば、フォロワーの配列に基づいてクエリの配列を生成します。この場合、[forEach]は良いアイデアですが、ここではforループを想定しています。あなたのフォロワーが大きすぎるareay場合

var followers = []; //array of users var mainQuery = new Parse.Query(YourOtherObject); //for each one of followers var orQuery = new Parse.Query(YourOtherObject); orQuery.equalTo("attending", follower); mainQuery = Parse.Query.or(mainQuery, orQuery);

このソリューションは、パフォーマンスではないかもしれません。しかし、いずれにしても、逆の場合の利点として、この場合はリレーションシップを使用することをお勧めします。また、ユーザークエリから取得して、他のオブジェクトに参加している場所に表示することもできます。

+0

フォロワ配列が巨大です。 250アイテムの平均。どう思いますか? – InfinitePrime

+0

私はあなたが関係を使用すべきだと思う:)彼らはこれらの場合のために正確に意図されています。 JSスクリプトを実行すると、簡単に変換できます。それ以外の場合は、パフォーマンスをテストして結果を自分で見ることができます。それは良いか悪いかもしれません。 –

+0

私は関係を見ています。更新されます。ありがとう。 – InfinitePrime

関連する問題