2014-05-09 5 views
0

Soi-disant que j'ai une structure de base de données comme celui-ci
Parse.com comprennent des objets liés à un à plusieurs relations

Person ('name', 'age') 
Belonging ('person', 'type') 

avec sa relation comme celui-ci

Person -> Belongings (one to many) 

et je veux interroger toute personne leur nombre d'effets personnels inclus comme ceci

Array[0] -> name, age, numberOfBelongings, 
Array[1] -> name, age, numberOfBelongings, 
etc 

Comment Est-ce que je fais ça? J'ai essayé d'utiliser CloudCode mais, il s'est avéré que la méthode de récupération est asynchrone, donc je ne peux pas aller chercher le nombre d'effets personnels à chaque personne.

Répondre

1

Vous ne pouvez pas faire cela directement. Si vous avez besoin de ce compte, vous pouvez créer un champ sur la classe Person (c'est-à-dire numberofbelongings) que vous mettez à jour dans un hook de code cloud afterSave sur Belonging. Chaque fois qu'un appartenance est enregistré, vous incrémentez également le champ numberofbelongings sur l'objet Person, et enregistrez-le également.

Aucune requête supplémentaire, aucun trafic réseau supplémentaire provenant de votre appareil et votre compte est toujours disponible pour tout objet Personne.

+0

Oui, j'ai pensé à ça aussi. Mais ce ne serait pas exact si quelque chose se passait quand afterSave a été exécuté, n'est-ce pas? –

+0

Que voulez-vous dire par "arrivé"? Vous pourriez rencontrer des problèmes de simultanéité si les biens d'une personne changeaient très rapidement, mais cela ne semble pas probable. Qu'avais tu en tête? – Moonwalkr

+1

oui, le problème de la concurrence est ce que j'ai en tête. hahaha .. Ok, je vais essayer votre suggestion. THX –

Questions connexes