2017-01-11 46 views
1

比較兩個數組如何,我們發現,如果一個數組的任何元素爲在查詢另一個陣列的一部分嗎?在分析查詢

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

也就是說,如果在followers的元件中的任何一個或多個在attending存在查詢應該匹配。

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

我敢肯定,你可以查詢兩個數組。查看文檔以更好地檢查。

如果沒有的話,你可以使用複合查詢。例如,基於追隨者數組生成查詢數組。在這種情況下[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