场景:我想向用户显示一个项目,然后锁定它,这样其他人就看不到它,一旦用户完成它,就显示下一个项目。
问题是发布中的查询必须检查锁。因此,一旦您更改锁,光标就会更新,项目也会更改。
如何解决?
编辑: 已发布的示例代码无法运行:
var item = Items.find({
locked: false
}, {
limit: 1
});
var itemObj = item.fetch()[0];
Items.update(itemObj._id, {$set: {locked: true}});
return item;
最佳答案
更好的解决方案可能是将项目分配给 userId。一旦他完成了该项目,该项目就会再次取消分配。
可以这样做:
- 方法调用
Items.assignToUser
- 查找要分配的项目并设置assignedUserId
- 订阅分配给我的所有项目(可能限制为 1)
完成后:
方法调用 Items.unassignFromUser
- 再次将字段 assignedUserId
设置为 null
。
关于javascript - meteor &出版锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31134292/