首页 > 数据库 >记录一次nodejs操作mongodb报错

记录一次nodejs操作mongodb报错

时间:2023-04-23 23:44:18浏览次数:36  
标签:console log err nodejs mongodb mongoose 报错 res

记录一次使用Mongoose操作mongodb报错

Mongoose查询回调函数报错

BookModel.findOne({ name: 'Rust' }, (err, data) => {
        if (err) {
            console.log('读取失败');
            return;
        }
        //输出 data 变量的值
        console.log(data);
    })

然而,node运行报如下错误:

throw new MongooseError('Model.findOne() no longer accepts a callback');
          ^
MongooseError: Model.findOne() no longer accepts a callback

经过查阅资料,发现Mongoose在2月做了一个新的更新,Mongoose现在已经不能这样回调了。

现在只能使用=>then=>catch来处理了。

BookModel.findOne({ name: 'Rust' }).then(res => {
        console.log(res);
        mongoose.disconnect();
    }).catch(err => {
        console.log(err);
    })

Mongoose查询,使用字段筛选报错

BookModel.find().select({ _id: 0, name: 1,author: 0 }).then(res => {
        console.log(res);
        mongoose.disconnect();
    }).catch(err => {
        console.log(err);
        mongoose.disconnect();
    })

报错如下

MongoServerError: Cannot do exclusion on field author in inclusion projection

经过查阅文档,发现,指定包含字段时,那所有字段值都得统一是 1,相反如果是不包含,也必须都是 0,但是_id这个字段不受这个限制。

改为如下代码后,操作成功。

BookModel.find().select({ _id: 0, name: 1,author: 1 }).then(res => {
        console.log(res);
        mongoose.disconnect();
    }).catch(err => {
        console.log(err);
        mongoose.disconnect();
    })

标签:console,log,err,nodejs,mongodb,mongoose,报错,res
From: https://www.cnblogs.com/fun-debug/p/17348141.html

相关文章

  • ubuntu创建conda虚拟环境时报错如下:
     ubuntu创建conda虚拟环境时报错如下:Fetchingpackagemetadata...  CondaHTTPError:HTTP000CONNECTIONFAILEDforurl<https://mirrors.tuna.tsinghu  a.edu.cn/anaconda/cloud/msys2/linux-64/repodata.json>  Elapsed:-  AnHTTPerroroccurr......
  • 4月23报错
     错误原因:构造函数引用实现层错误解决方法:改成引用接口 ......
  • PVE虚拟机出现系统启动报错“journalctl”to view system logst解决方法
    故障现象  虚拟机卡死,重启虚拟机后,不能正常进入系统解决办法xfsrepair-v-L/dev/dm-0L选项指定强制日志清零,强制xfs_repair将日志归零,即使它包含脏数据(元数据更改)。再重启下虚拟机即可......
  • 常见报错
    报错:DataisNull.ThismethodorpropertycannotbecalledonNullvalues.原因之一是数据库中数值类型的字段未设置非空,Model类中的数据类型应当加上?,否则会报此错误  报错:Unabletocastobjectoftype'System.Int32'totype'System.String解决方案:找出Model类中......
  • nodejs从命令行获取参数
    //添加参数letarr=process.argv;constconfig={src:"",//添加参数};for(leti=2,len=arr.length;i<len;i+=2)config[arr[i].substring(1)]=arr[i+1];constpara=Object.keys(config).find((e)=>{return!config[e];});i......
  • RK3588 Qt 交叉编译之四:配置及编译报错记录
    运行时出现错误提示:QIconvCodec::convertToUnicode:usingLatin-1forconversion,iconv_openfailedQIconvCodec::convertFromUnicode:usingLatin-1forconversion,iconv_openfailed原因是缺少iconv库,解决方案如下:./configure后添加编译-no-iconv运行时出现错误提......
  • KEIL5--Error: L6915E: Library reports error: __use_no_semihosting was requested
    __use_no_semihostingwasrequested:要求不使用半主机模式。 比较简单的一个解决方法就是点击“魔术棒”,在Target标签下有个UseMicroLIB,勾选UseMicroLIB,再编译就不会报错了。”Use MicroLIB”,这是KEIL自带的一个简易的库,使用Use MicroLIB微库不需要强调不使用半主机(nos......
  • windows11 nvm 切换nodejs版本失败
    在windows11,当切换分支命令nvmuse16.15.0显示成功,但用nvmls看的时候发现分支没有切换,可以直接用windows的命令来覆盖原来nodejs文件夹的快捷方式  把这个文件夹删掉,然后用命令重建mklink/dD:\Soft\nvm\nodejsD:\Soft\nvm\nvm\v16.15.0 这样就可以重新指......
  • Git clone 报错 Missing or invalid credentials
    https://juejin.cn/post/7062237873570840589git clone报错Missingorinvalidcredentials.Error:connectEACCES/run/user/1000/vscode-git-26b2d57ddf.sockatPipeConnectWrap.afterConnect[asoncomplete](node:net:1157:16){errno:-13,code:'EA......
  • Docker 启动异常 不显示报错信息
    错误的启动配置sudodockerrun--rm-d\-p80:80-p443:443nginx执行结果为返回容器id,但容器未启动,无报错信息sudodockerrun--rm-itd\-p80:80-p443:443nginxbash执行结果为容器启动并在后台挂起,但nginx未启动成功,无报错信息sudodockerrun......