Question

I'm using a Parse.Relation to group users under a Topic. How do I retrieve all the topics which have a topic.relation pointing to a given user?

The question is about doing this in a single call/callback.

// first add() a User object to the Topic's Parse.Relation
this.friendRelation = this.topic.relation("friend");
this.friendRelation.add(user);
// save the Topic to save its newly added .relation to Parse/Mongo
this.topic.save();

// iterate by adding the same User to several Topics

// (...)

// then you want to retrieve all Parse.Relations of all Topics where that 
// specific user is pointed to

// the non-optimized way is to traverse every row in the Topics index 
// and query each topic for its relations to find matching pointers to our user, 
// which means that the number of calls is bound to the number of rows – fine for
// 10 topics in Mongo but passed 100 it won't be tolerable.
Was it helpful?

Solution

Construct a query for the Topic class, and add a equalTo constraint.

var query = new Parse.Query(Topic);
query.equalTo("friend", user);
query.find({success: function (returnedTopics) {
    ...
    },
    error: function (...) {
    }
});

This will return all Topic objects that contain user in their friend relation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top