Mongoose deleteOne()两种返回值差异咨询
关于Mongoose中deleteOne()两种返回值的差异
旧版Mongoose(v5及更早)返回格式:
{n, ok, deletedCount}n:查询匹配到的文档总数ok:操作执行状态标识(1代表成功,0代表失败)deletedCount:实际被删除的文档数量
这个格式是早期Mongoose对MongoDB原生返回结果的自定义封装,当时官方原生驱动的返回结构尚未统一。
新版Mongoose(v6+)及MongoDB原生驱动返回格式:
{acknowledged, deletedCount}acknowledged:数据库是否确认接收并执行了该操作(默认值为true,仅当使用{writeConcern: {w: 0}}无确认写入选项时会为false)deletedCount:实际被删除的文档数量
这是MongoDB官方统一后的标准返回结构,Mongoose从v6版本开始对齐原生驱动规范,所以你当前项目会得到这类返回值。
你无法复现旧格式的核心原因是使用了v6及以上版本的Mongoose,新版本已经废弃了旧的自定义封装格式,完全适配官方标准结构。如果需要兼容旧代码逻辑,可以手动将新返回结果转换为旧格式,但更建议直接适配新结构以保持与官方生态一致。
内容的提问来源于stack exchange,提问作者FlippingTook
相关产品推荐
相关产品推荐

