You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何mongoose的insertMany函数抛出TypeError?求解决方案

MongoDB插入数据报错及连接配置解决方案

一、先修复代码中的潜在语法问题

你的insertMany数组最后一个对象末尾多了一个逗号,虽JS允许但可能引发解析异常,先移除:

async function insertDummyCategoryData(){
    try{
        await Category.insertMany([
            {
                "name": "Thai",
                "image": "1.jpg"
            },
            {
                "name": "Indian",
                "image": "1.jpg"
            },
            {
                "name": "Chinese",
                "image": "1.jpg"
            },
            {
                "name": "American",
                "image": "1.jpg"
            },
            {
                "name": "Mexican",
                "image": "1.jpg"
            },
            {
                "name": "Continental",
                "image": "1.jpg"
            } // 移除此处多余的逗号
        ]);
    } catch(error){
        console.log('Error in adding details to the DB ', error);
        // 新增:打印完整错误栈,方便精准定位
        console.log('完整错误信息:', error.stack);
    }
}
insertDummyCategoryData();

二、解决TypeError: Cannot read properties of undefined (reading 'length')报错

这个错误核心原因是Mongoose与MongoDB版本不兼容,或数据库连接未成功导致错误对象结构异常,按以下步骤处理:

  1. 调整Mongoose版本

    • 升级到最新稳定版:
      npm install mongoose@latest
      
    • 若升级后问题依旧,尝试降级到兼容版本(适配MongoDB 5.x/6.x的6.x系列):
      npm install mongoose@6.11.0
      
  2. 验证数据库连接状态
    在连接代码后添加状态监听,确认是否成功连接:

    const mongoose = require('mongoose');
    mongoose.connect(process.env.MONGODB_URI, {useNewUrlParser: true, useUnifiedTopology: true});
    
    // 新增连接状态监听
    const db = mongoose.connection;
    db.on('error', console.error.bind(console, '数据库连接错误:'));
    db.once('open', function() {
      console.log('数据库连接成功');
    });
    

三、调整MongoDB连接字符串(替换localhost为IP)

按以下步骤操作:

  1. 获取本机IP地址
    • Windows:打开命令提示符,输入ipconfig,找到IPv4地址(如192.168.3.10)
    • Mac/Linux:打开终端,输入ifconfig或ip addr,找到本机内网IP
  2. 修改环境变量MONGODB_URI
    将原连接字符串mongodb://localhost:27017/你的数据库名替换为mongodb://你的IP地址:27017/你的数据库名,示例:
    MONGODB_URI=mongodb://192.168.3.10:27017/recipe_blog
    
  3. 允许MongoDB监听所有IP(可选)
    若本地连接仍失败,修改MongoDB配置文件(通常为mongod.conf):
    • 找到bindIp配置项,改为bindIp: 0.0.0.0(允许所有IP访问)
    • 重启MongoDB服务

内容的提问来源于stack exchange,提问作者Swati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:52:44