Join parse.com从联接表中选择
只是想知道我做得对还是有更好的方法 我有3张桌子,游戏,用户和用户游戏。UserGame是一个连接表,具有指向游戏表和用户表的指针 以下脚本返回用户已加入的所有游戏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)
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