使用Mongoose的insertMany()时出现TypeError错误求助
Mongoose 批量插入文档报错问题
问题现象
单独使用await fruit.save();可正常保存单个文档,但调用.insertMany()批量添加文档时,终端抛出以下错误:
/Users/FruitsProjectMongoose/node_modules/mongoose/lib/model.js:3519 for (let i = 0; i < error.writeErrors.length; ++i) { ^ TypeError: Cannot read properties of undefined (reading 'length') at /Users/FruitsProjectMongoose/node_modules/mongoose/lib/model.js:3519:47 at collectionOperationCallback (/Users/FruitsProjectMongoose/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:194:24) at /Users/FruitsProjectMongoose/node_modules/mongodb/lib/utils.js:349:66 at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
环境信息
- MongoDB通过Homebrew安装,Mongoose通过npm安装,均为两天内更新的最新版本
fruitsDB数据库已存在,可通过mongosh访问并查看单独添加的文档- MongoDB服务器通过
brew services start mongodb-community正常运行
代码示例
const mongoose = require("mongoose"); mongoose.set('strictQuery', false); // 连接MongoDB并捕获错误 main().catch(err => console.log(err)); async function main() { await mongoose.connect('mongodb://127.0.0.1:27017/fruitsDB') .then(() => console.log('Connected!')); // 定义模型Schema const Schema = mongoose.Schema; const fruitSchema = new Schema({ name: { type: String, require: true }, rating: { type: Number, require: true }, review: { type: String, require: true } }); const peopleSchema = new Schema({ name: String, age: Number }); // 创建模型 const Fruit = new mongoose.model("Fruit", fruitSchema); const People = new mongoose.model("People", peopleSchema); // 创建并保存单个文档 const fruit = new Fruit({ name: "Banana", rating: 10, review: "Perfection!" }); // await fruit.save(); const people = new People({ name: "Eduard", age: 25 }); // await people.save(); // 批量创建并保存文档 const kiwi = new Fruit({ name: "Kiwi", rating: 9, review: "Great, kinda expensive!" }); const orange = new Fruit({ name: "Orange", rating: 6, review: "Too sweet." }); const apple = new Fruit({ name: "Apple", rating: 7, review: "Great fruit!" }); Fruit.insertMany([kiwi, orange, apple], function(err) { if (err) { console.log(err); } else { console.log("Succesfully saved to fruitsDB"); } }); mongoose.connection.close(); };
补充说明
已尝试各类网络方案、咨询开发者均无果,甚至怀疑是系统问题。
内容的提问来源于stack exchange,提问作者Eduard
相关产品推荐
相关产品推荐

