Node.js Mongoose版本控制问题:如何处理rapid fire请求(例如,从文档中的数组中删除一组项)
在特定的场景中,当我们的用户从文档中删除一堆标记时,我们会从Mongoose中得到一堆VersionErrors,并且这些操作显然没有全部完成。只是想弄清楚如何避开这件事/确保它不会发生。开放数据结构中的体系结构更改 以下是场景: 我们有一个叫做Ask的模型:Node.js Mongoose版本控制问题:如何处理rapid fire请求(例如,从文档中的数组中删除一组项),node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,在特定的场景中,当我们的用户从文档中删除一堆标记时,我们会从Mongoose中得到一堆VersionErrors,并且这些操作显然没有全部完成。只是想弄清楚如何避开这件事/确保它不会发生。开放数据结构中的体系结构更改 以下是场景: 我们有一个叫做Ask的模型: var AskSchema = new Schema({ ... _tags: [{type: Schema.Types.ObjectId, ref: 'Tag'}], created_at: {type: Date, d
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}
}
在我们的界面上,我们显示与用户正在查看的特定Ask关联的标记模型列表,用户可以添加新标记或删除现有标记
如果用户同时删除4-5个标记,我们会向服务器发送4-5个单独的HTTP DELETE请求,每个请求都会尝试从\u tags
数组中删除该ID
这就是VersionError发生的地方,这正是Mongoose的版本控制系统应该做的
问题是:为了避免这种情况,我应该从前端还是后端做些什么。我目前的想法是:
\u ask
和\u tag
,以维护这些关系(闻起来非常SQLy)ask.\u tags.pull(tagId)
我是否遗漏了任何解决方案?这里的最佳实践是什么?您将什么作为输入传递给HTTP Delete请求?它是一个REST端点。没有正文,直接删除//询问//标记即可/