用户可以创建群组 一个组必须由用户创建
用户可以属于多个组 一个组可以有多个用户
我有以下内容:
Parse.Cloud.afterSave('Group', function(request) {
var creator = request.user;
var group = request.object;
var wasGroupCreated = group.existed;
if(wasGroupCreated) {
var hasCreatedRelation = creator.relation('hasCreated');
hasCreatedRelation.add(group);
var isAMemberOfRelation = creator.relation('isMemberOf');
isAMemberOfRelation.add(group);
creator.save();
}
});
现在,当我使用include = isMemberOf,hasCreated来获取user / me时,它会返回用户对象但是具有以下内容:
hasCreated: {
__type: "Relation"
className: "Group"
},
isMemberOf: {
__type: "Relation"
className: "Group"
}
我希望将群组对象包括在内,' hasCreated'并且' isMemberOf'阵列。如何使用REST API提取它?
一般情况下,我是否正确地接近这个?思考?非常感谢帮助!
答案 0 :(得分:0)
首先,existed
是一个返回true或false的函数(在您的情况下,wasGroupCreated
变量始终是对函数的引用,并且总是计算为true)。如果您正确使用它,它可能无法返回您的预期。
我认为你想要的是isNew()
函数,不过我会测试这是否适用于Parse.Cloud.afterSave()
方法,因为我还没有尝试过。
至于你问题的第二部分,你似乎想要像阵列一样使用你的关系。如果您使用的是数组(并且大小足够小),那么您可以在查询中包含Group
个对象(例如,在{REST} include
中添加isMemberOf
参数集查询)。
如果您确实想坚持关系,请意识到您需要在documentation中阅读更多信息。特别是,您需要使用Group
表达式查询where
对象,该表达式具有$relatedTo
指针。要以这种方式进行查询,您可能需要members
上与Group
有关系的Users
属性。
你的REST查询中的这样的东西可能有用(当然用正确的用户替换objectId):
where={"$relatedTo":{"object":{"__type":"Pointer","className":"_User","objectId":"8TOXdXf3tz"},"key":"members"}}