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

使用Mongoose的Model.insertMany报length未定义错误,单独save正常求解决

问题解决:TypeError: Cannot read properties of undefined (reading 'length')

你的报错主要由两个问题导致,以下是分析和修正方案:

1. 数据库连接未完成就执行插入操作

mongoose.connect是异步操作,你的代码直接在连接后立即执行insertMany,此时数据库可能还未建立连接,导致模型无法正常执行批量插入,触发length读取错误。

2. 代码拼写错误

成功回调里的consloe.log是拼写错误,应为console.log,虽然这不是当前报错的直接原因,但会导致插入成功后无法正常输出提示。


修正后的代码示例(使用async/await)

const mongoose = require("mongoose");

mongoose.set('strictQuery', true);

async function run() {
  try {
    // 等待数据库连接成功
    await mongoose.connect("mongodb://localhost:27017/dataDB", { useNewUrlParser: true });
    
    const dataSchema = new mongoose.Schema({
      name: String
    });

    const Data = mongoose.model("Data", dataSchema);

    // 直接传入普通对象数组即可,无需提前创建Model实例
    const dataItems = [
      { name: "Welcome to your todoList" },
      { name: "Hit the + button to add a new item" },
      { name: "<-- hit this to delete an item" }
    ];

    await Data.insertMany(dataItems);
    console.log("Successfully saved");
  } catch (err) {
    console.error(err);
  } finally {
    // 操作完成后关闭连接(可选)
    await mongoose.connection.close();
  }
}

run();

另一种方案(监听连接事件)

const mongoose = require("mongoose");

mongoose.set('strictQuery', true);
mongoose.connect("mongodb://localhost:27017/dataDB", { useNewUrlParser: true });

// 监听连接成功事件
mongoose.connection.once('open', async () => {
  const dataSchema = new mongoose.Schema({
    name: String
  });

  const Data = mongoose.model("Data", dataSchema);

  const data1 = new Data({ name: "Welcome to your todoList" });
  const data2 = new Data({ name: "Hit the + button to add a new item" });
  const data3 = new Data({ name: "<-- hit this to delete an item" });
  const dataItems = [data1, data2, data3];

  try {
    await Data.insertMany(dataItems);
    console.log("Successfully saved");
  } catch (err) {
    console.error(err);
  }
});

// 监听连接错误
mongoose.connection.on('error', (err) => {
  console.error("数据库连接失败:", err);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:31:00