Node,Mongoose:on save()"VersionError:找不到匹配的文档."

  发布于 2023-02-03 10:36

我是猫鼬的新手所以这可能是非常简单的事情.但是.

我有一个非常简单的架构,其中包含一个简单的数字数组:

userSchema = new mongoose.Schema({
name        : String,
tag_id      : String,
badges      : [Number]
});

var user = mongoose.model( 'User', userSchema );

后来我想为用户添加徽章.所以..

user.findOne({tag_id:tagid}, function(err,doc) {
     if (!doc) callback(false, 'no doc');

     // check to see if badge is in array, if not add it
     if ( doc.badges.indexOf(badgeNum) == -1 ) {
         doc.badges.push(badgeNum);
         doc.save( function(err) {
             if (err) callback( false, err );
             else callback( true, '');
         });
     } else {
         callback( false, 'user already had badge' )
     }
 });

但是每当我运行该代码时,我都会收到"VersionError:找不到匹配的文档".

我做了一点谷歌搜索,并发现在3.x mongoose中添加了版本控制的参考,并且它通常都在内部处理.应该注意的是,我通过json和mongo命令行将这个用户数据直接加载到mongo中(因此默认情况下不会定义版本控制变量,但我怀疑如果没有找到它,mongoose会创建它).不好的假设?)

编辑:抱歉,我的简化示例中有错误.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有