用户可以创建组组必须是由用户创建的
一个用户可以属于多个组一个组可以有多个用户
我有如下内容:
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时,它返回给我user对象,但带有以下内容:
hasCreated: {
__type: "Relation"
className: "Group"
},
isMemberOf: {
__type: "Relation"
className: "Group"
}
我想有组对象包含在说,'hasCreated'和'isMemberOf'数组。我如何使用REST API拉?
更一般地说,我的方法是正确的吗?想法吗?非常感谢您的帮助!
首先,existed
是一个返回true或false的函数(在您的情况下,wasGroupCreated
变量始终是对该函数的引用,并且它将始终计算为true)。如果你正确使用它,它可能不会返回你所期望的结果。
我认为你想要的是isNew()
函数,虽然我会测试这是否适用于Parse.Cloud.afterSave()
方法,因为我没有在那里尝试过。
至于你问题的第二部分,你似乎想像使用数组一样使用关系。如果您使用数组代替(并且大小足够小),那么您可以在查询中包含Group
对象(例如在REST查询中将include
参数集添加到isMemberOf
)。
如果您确实想坚持使用关系,请意识到您需要在文档中阅读更多内容。特别是,您需要使用一个where
表达式来查询Group
对象,该表达式为用户提供了一个$relatedTo
指针。要以这种方式查询,您可能需要在Group
上有一个members
属性,该属性与Users
有关系。
where={"$relatedTo":{"object":{"__type":"Pointer","className":"_User","objectId":"8TOXdXf3tz"},"key":"members"}}