Join parse.com从联接表中选择

Join parse.com从联接表中选择,join,parse-platform,Join,Parse Platform,只是想知道我做得对还是有更好的方法 我有3张桌子,游戏,用户和用户游戏。UserGame是一个连接表,具有指向游戏表和用户表的指针 以下脚本返回用户已加入的所有游戏 var Game = Parse.Object.extend("Game"); var UserGame = Parse.Object.extend("UserGame"); var innerQuery = new Parse.Query(Game); var query = new Parse.Query(UserGame)

只是想知道我做得对还是有更好的方法

我有3张桌子,游戏,用户和用户游戏。UserGame是一个连接表,具有指向游戏表和用户表的指针

以下脚本返回用户已加入的所有游戏

var Game = Parse.Object.extend("Game");
var UserGame = Parse.Object.extend("UserGame");

var innerQuery = new Parse.Query(Game);

var query = new Parse.Query(UserGame);
query.equalTo("user", user);
query.matchesQuery("game", innerQuery);
query.include("game");
query.find({
我现在尝试返回用户尚未加入的游戏。我尝试了与上述查询相反的方法,但不起作用。有什么想法吗

还有比使用上面的连接表更好的解决方案吗?我是否应该在用户表中添加一个游戏指针列表?

这是一个用户界面(并且不容易从网站访问)

您试图做的似乎是
.noContainerIn([第一次查询的结果])或
的一个很好的用例


matchesKeyInQuery
在您的第一个示例中,使用BTW似乎更简单

我也使用了一个包含两个指针的表。我将解释我简化了什么,并将其应用于您的案例:

1.使用对象游戏生成查询,以获取此表中存在的所有游戏的数组:

var Game = Parse.Object.extend("Game");
    var query = new Parse.Query(Game);
    query.find({
      success: function(arrayGames) { 
       //store this array to manage later
      },
      error: function(user, error) {
            alert("There is not stored games");
            }
    });
二,。获取要与存储在UserGame表中的此游戏进行比较的用户,并对上一个Get数组的每个元素进行查询:

var UserGame = Parse.Object.extend("UserGame");
    var query = new Parse.Query(UserGame);
var currentUser = Parse.User.current();
var currentGame;
for(var i=0; i<arrayGames.length ;i++){
 currentGame=arrayGames[i];
 query.equalTo("Game", currentGame);
 query.notEqualTo("User", currentUser);
  query.find({
      success: function(foundGames) {
      //you have got an array with the games not joined to this user 
      },
       error: function(user, error) {
            alert("There are not joined games ");
                }
    });
}
var UserGame=Parse.Object.extend(“UserGame”);
var query=newparse.query(UserGame);
var currentUser=Parse.User.current();
var博弈;
对于(var i=0;i