Mongoose调用.save()时意外在非关联集合创建空文档求助
Mongoose保存文档后自动创建
data-source空集合的问题排查 使用Mongoose将文档正常保存到目标集合后,系统自动在一个从未引用过的data-source集合中创建了仅包含_id和__v字段的空文档。相关代码如下:
let groupSchema = new Group( { role: "EDA_USER_ROLE", group_name: "", name: "SDA_BASIC", users: [] } ) groupSchema.save()
Group Schema已在其他文件定义且能正常保存目标文档,但上述异常仍出现,未找到相关交叉引用或逻辑问题。
排查方向:
- 全项目检索是否存在
DataSource模型定义(Mongoose会自动将模型名转为小写复数形式data-source),哪怕是测试代码、废弃代码里的,只要该模型被实例化过,就可能触发集合自动创建。 - 检查Mongoose全局配置或已安装的插件,是否有第三方插件(如数据同步、日志类插件)会隐式创建
data-source集合。 - 查看数据库连接完成后的前置操作,有没有调用过
Model.createCollection()、Model.init()这类方法,针对了未明确定义的模型。 - 排查项目依赖包,部分依赖内部可能会使用Mongoose创建
data-source集合,可以临时移除非核心依赖,逐个排查定位。 - 开启Mongoose调试模式:
mongoose.set('debug', true),打印所有数据库操作日志,通过日志找到触发data-source集合插入的具体操作来源。
内容的提问来源于stack exchange,提问作者asafJortillles
相关产品推荐
相关产品推荐

