使用 Parse Cloud Code 从数组中删除对象

Posted

技术标签:

【中文标题】使用 Parse Cloud Code 从数组中删除对象【英文标题】:Using Parse Cloud Code to remove object from an array 【发布时间】:2014-04-03 20:02:30 【问题描述】:

目前我正在使用 Cloud Code 和 masterkey 根据当前用户的操作修改其他用户的属性。我有一个属性requests_from,并且我已经设法根据以下代码将项目添加到该数组中:

Parse.Cloud.define('requestUser', function(request, response) 
    var userId = request.params.userId, 
        requestsFrom = request.params.requestsFrom;

    var User = Parse.Object.extend('_User'),
        user = new User( objectId: userId );

    user.add('requests_from', requestsFrom); //Changed from set to add

    Parse.Cloud.useMasterKey();
    user.save().then(function(user) 
        response.success(user);
    , function(error) 
        response.error(error)
    );
);

我已使用上述代码将currentUser.objectId 添加到目标用户的requests_from 列。

但是,我现在的问题是从 requests_from 中删除项目。当前用户完成操作后,我想从requests_from 中删除currentUser.objectId。但是,使用 user.removeuser.delete 不起作用。我想知道是否有另一种方法可以通过 Cloud Code 完成此任务?

谢谢

【问题讨论】:

【参考方案1】:

如果您还没有解决它,我希望这个答案对您有所帮助!基本上,在研究并没有找到任何东西之后,似乎解决方案是执行以下操作:

Parse.Cloud.define('removeRequest', function(request,response)
  var userId = request.params.userId;

  var User = Parse.Object.extend('_User'),
      user = new User( objectId: userId );

  var currentUser = request.user;

  var relation = user.relation("request");
  relation.remove(currentUser);

  Parse.Cloud.useMasterKey();
  user.save().then(function(user) 
    response.success(user);
  , function(error) 
    response.error(error)
  );
);

【讨论】:

以上是关于使用 Parse Cloud Code 从数组中删除对象的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 应用程序中更新 PFObject 的密钥时,需要从 Parse Cloud Code 保存和登录时运行代码

将 Java 字符串数组或 JSON 字符串转换为 Javascript 数组(Parse.com Cloud Code 和 Mandrill)

Parse Image + Parse httpRequest 替换——从 Parse Cloud Code 迁移到 Parse Server on Node (Heroku / AWS / DO)

response.error不是Parse Cloud Code中的函数

将 JSON 数据从 Parse Cloud Code 返回到 Swift 中的可解码结构

删除 Parse Cloud Code 中的其他文件