【问题标题】:parse.com selecting from join tableparse.com 从连接表中选择
【发布时间】:2014-02-19 15:06:15
【问题描述】:

只是想知道我这样做是正确的还是有更好的方法。

我有 3 个表,Game、User 和 UserGame。 UserGame 是一个连接表,具有指向 Game 和 User 表的指针。

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

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({

我现在正在尝试退回用户尚未加入的游戏。我尝试了上述查询的相反方法,但它不起作用。有什么想法吗?

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

【问题讨论】:

    标签: join parse-platform


    【解决方案1】:

    这是有用的(从网站上不容易访问)

    https://parse.com/docs/js/symbols/Parse.Query.html

    您正在尝试做的似乎是 .noContainerIn([results of the first query]).doesNotMatchKeyInQuery 的一个很好的用例

    matchesKeyInQuery 在您的第一个示例中似乎更易于使用顺便说一句

    【讨论】:

      【解决方案2】:

      我也使用了一个内部有两个指针的表格。我将解释我所做的简化,并将其应用于您的情况:

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

      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");
                  }
          });
      

      2。获取要与存储在 UserGame 表中的该游戏进行比较的用户,并对先前获取的数组的每个元素进行查询:

      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 ");
                      }
          });
      }
      

      希望对您有所帮助,如果您需要更多详细信息,请询问我 ;)

      【讨论】:

        猜你喜欢
        • 2014-01-07
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 2016-08-02
        • 1970-01-01
        相关资源
        最近更新 更多