更新不属于客户端集合的实体

时间:2013-12-23 11:48:10

标签: meteor

我正在尝试在删除实体时更新相关实体。问题是相关实体不是客户端集合的一部分。有没有办法只在服务器上进行更新?

具体示例:当调用'removeSlack'时,我想更新所有副本并从其副本数组中删除已删除的slackId。但因为副本不是客户端'Slack.findOne(copyId)'集合的一部分,所以没有找到任何内容。

Meteor.methods(
  removeSlack: (slackId) ->
    slack = Slack.findOne(slackId)
    for copyId in _.pluck(slack.copies, 'slackId')
      copy = Slack.findOne(copyId)
      if copy
        Slack.update(copyId, { $set: {copies: _.without(copy.copies, {slackId: slackId, userId: Meteor.userId()})}})
    Slack.remove(slackId)
)

1 个答案:

答案 0 :(得分:1)

您可以在Meteor.isServer()块中包装您只想在服务器上运行的任何代码:http://docs.meteor.com/#meteor_isserver

或者,您可以将您只想在服务器上运行的代码文件放在项目的/ server文件夹中。