2
我試圖在刪除實體時更新相關實體。問題是相關實體不是客戶端集合的一部分。有沒有辦法只在服務器上進行更新?更新不屬於客戶端集合的實體
具體示例:調用'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)
)
所以事實證明,問題不是更新沒有執行,而是_.without使用對象相等,我期望像_.isEqual那樣進行深度比較。在不使用_.isEqual(c,{slackId:slackId,userId:Meteor.userId()}))時使用(c for copy.copies,而不是_.without部分修復它。 – Manuel