流星派对示例:http://www.meteor.com/examples/parties
每个用户限制1个RSVP的最有效方法是什么?我想以某种方式修改RSVP方法,但不确定如何去做。
我的一般想法是这样的:
if(Parties.find({rsvps:{user}}) > 1 )
非常感谢任何帮助!
答案 0 :(得分:0)
你基本上有了正确的想法:在model.js中为rsvp函数添加一个检查。这是聚会集合的架构:
/* Each party is represented by a document in the Parties collection:
owner: user id
x, y: Number (screen coordinates in the interval [0, 1])
title, description: String
public: Boolean
invited: Array of user id's that are invited (only if !public)
rsvps: Array of objects like {user: userId, rsvp: "yes"} (or "no"/"maybe")
*/
要检查用户是否已有rsvp,您需要在此功能中添加一行:
if (Parties.find({'rsvps.user': this.userId}).count()) return;
这基本上可行。但是,有一个小的竞争条件,一个用户可以快速连续两次调用rsvp,这个检查可以通过两个更新,然后他将被rsvp-ed两次。有办法解决这个问题(例如:某种形式的两阶段提交......)但他们更多参与其中。