Mongoose Versioning问题:如何处理快速火灾请求(例如从文档中的数组中删除一堆项目)

时间:2016-01-08 04:46:27

标签: node.js mongodb mongoose

在我们的用户从文档中删除一堆标记的特定情况下,我们从Mongoose获得了一堆VersionErrors,并且这些操作显然并非全部完成。只是想弄清楚如何绕过这个/确保它不会发生。对数据结构中的体系结构更改开放!

以下是该方案:

我们有一个名为Ask:

的模型
Graphics2D g2 = (Graphics2D) g;
errorCount = Math.min(errorCount, shapes.length);
for (int i = 0; i < errorCount; i++) {
    g2.draw(shapes[i]);
}

在我们的界面上,我们显示与用户正在查看的特定询问相关联的标记模型列表,他们可以添加新标记或删除现有标记。

如果用户同时删除了4-5个标签,我们会向服务器发送4-5个单独的HTTP DELETE请求,每个请求都会尝试从var AskSchema = new Schema({ ... _tags: [{type: Schema.Types.ObjectId, ref: 'Tag'}], created_at: {type: Date, default: Date.now, required: true}, updated_at: {type: Date, default: Date.now, required: true} } 数组中删除该ID。

这就是VersionError发生的地方,这正是Mongooses的版本控制系统应该做的。

问题是:我应该从前端或后端做什么来避免这种情况。我目前的想法是:

  1. 在前端排队请求(有点烦人但可能)。
  2. 创建一个名为AskTag的“关系”模型,它只保留_tags_ask以维持这些关系(闻起来非常SQLy)
  3. 发生版本错误时重新获取文档,然后再次应用_tag
  4. 我错过了任何解决方案吗?这里最好的做法是什么?

0 个答案:

没有答案