2017-10-10 5 views
0

c'est la structure de ma base de données avec les classes:Parse serveur cloud code requête pour pointeur

utilisateur -> objectId (String) nom d'utilisateur (String)

Amis -> objectId (String) TOUSER (pointeur < _USER>) fromuser (pointeur < _USER>)

Mon but est de récupérer les utilisateurs avec les noms d'utilisateur, ce qui correspond aux colonnes TOUSER et fromuser avec comme identifiant spécifique La variable Pointer of toUser et fromUser est l'objectId de la table "User"

Comment devrait être ma requête?

J'ai essayé celui-ci, mais il n `travailler

Parse.Cloud.define('FriendsQuery', function(req,res) { 
const friends = new Parse.Query("Friends"); 
friends.equalTo("toUser","fEjQgAPvDO"); 
const userQuery = new Parse.Query("User");  

userQuery.matchesQuery('friend', friends); 
userQuery.find().then((results) => { 
    res.success(results); 
}) 
.catch(() => { 
    response.error("user lookup failed"); 
}); 
}); 

J'ai inclus seulement la colonne TOUSER dans cette requête

Toute idée?

Merci

Répondre

0

La troisième ligne dans votre code devrait ressembler à ceci

friends.equalTo ("TOUSER", {__ Type: "pointeur", className: "Utilisateur", objectId: "fEjQgAPvDO" });

  • __type va toujours être pointeur
  • className est le nom de la collection où le objectId est stocké. En d'autres termes son de la « table » où le pointeur pointe vers
  • objectId est l'ID dans cette « table/collection »
+0

Salut Alon et merci. Malheureusement, ma logique est fausse. Bien que, peut-être avec celui-ci j'obtiendrai les lignes, je n'obtiendrai pas les amis. Avec cette question, je prendrai le nombre de rangées où l'utilisateur connecté a reçu ou a envoyé une demande d'ami. Mais je veux le contraire, je veux la liste de ses amis – giorgionasis

+0

Si vous voulez une liste d'amis ne le feriez-vous pas? Parse.Cloud.define ('FriendsQuery', fonction (req, res) { const amis = nouveau Parse.Query ("amis"); friends.equalTo ("toUser", {__ type: "Pointeur", className: " Utilisateur ", objectId:" fEjQgAPvDO "}); friends.find ({sessionToken: request.user.getSessionToken()}); –

+0

Oui, mais peut-être le contraire existe-t-il, le" fEjQgAPvDO ", utilisateur connecté, a envoyé la demande Donc je veux la variable fromUser.Est-ce que je fais une seconde equalto ("fromUser", ...) ??? – giorgionasis