Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Mongoose upsert重复键错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用Mongoose进行upsert,但是我得到一个重复的键错误,因为应该触发upsert的键.

架构:

"resource": {type: scheR_287_11845@a.objectId,ref: "resource"},"skill": {type: scheR_287_11845@a.objectId,ref: "Skill"},"level": {type: number,min: 1,max: 5}

.index({skill: 1,resource: 1},{unique: truE});

然后我打电话:

//self is a resource instance
    resourceSkillLevel.update({                                           
        resource: self._id,skill: skill._id,level: level
    },{$set: {level: level}},{upsert: truE},cb);

如果(资源,技能)不存在,则此调用正常工作并正确创建resourceSkillLevel条目.但是,当我再次调用它时,我得到重复的键错误索引.列出的重复键是元组资源/技能键.当它找到重复时为什么不进行上传

解决方法

您在更新查询条件参数中包含级别,因此如果它不匹配现有记录,它将尝试创建一个新文档,该文档将使仅限于技能和资源的唯一索引失败.

尝试将更新更改为:

resourceSkillLevel.update({                                           
    resource: self._id,skill: skill._id
},cb);

大佬总结

以上是大佬教程为你收集整理的node.js – Mongoose upsert重复键错误全部内容,希望文章能够帮你解决node.js – Mongoose upsert重复键错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。