Mongoose Document Model.insertMany()函数

Mongoose Document Model.insertMany()函数

使用 Model.insertMany() 方法可以一次性在集合中插入多个文档。我们可以提供一个对象数组给 insertMany() 方法,并在模型对象上执行。Mongoose会对数组中的所有对象进行验证,如果任何对象存在验证错误,则不会插入任何对象或文档。

语法:

Model.insertMany()

参数:

Model.insertMany() 方法接受三个参数:

  • docs: 它是一个包含将要插入集合的对象数组。
  • options: 它是一个包含各种属性的对象。
  • callback: 它是一个执行完成后将运行的回调函数。

返回值:

Model.insertMany() 函数返回一个 Promise 对象。结果包含一个包含已插入到数据库中的文档详细信息的对象数组。

设置 Node.js 应用程序:

步骤1:

使用以下命令创建一个 Node.js 应用程序:

npm init

步骤2: 创建NodeJS应用程序后,使用以下命令安装所需的模块:

npm install mongoose

项目结构: 项目结构将如下所示:

Mongoose Document Model.insertMany()函数

数据库结构:

数据库结构将如下所示,以下文件存在于集合中。

Mongoose Document Model.insertMany()函数

示例1: 在这个示例中,我们使用mongoose建立了一个数据库连接,并在userSchema上定义了一个模型,有两个列或字段“name”和“age”。最后,我们在User模型上使用了 insertMany() 方法,它将在一次执行中插入三个文档。我们创建了一个包含要插入User集合的文档对象数组。

  • app.js: 将以下代码写入app.js文件中:
// Require mongoose module
const mongoose = require('mongoose');
 
// Set Up the Database connection
mongoose.connect(
    'mongodb://localhost:27017/geeksforgeeks', {
    useNewUrlParser: true,
    useUnifiedTopology: true
})
 
const userSchema = new mongoose.Schema(
    { name: String, age: Number }
)
 
// Defining userSchema model
const User = mongoose.model('User', userSchema);
const docs = [{ name: "User4", age: 40 }, 
    { name: "User5", age: 50 }, 
    { name: "User6", age: 60 }]
User.insertMany(docs).then(result => {
    console.log(result)
})

运行程序的步骤: 从项目的根目录执行以下命令来运行应用程序:

node app.js

输出:

[
  {
    name: 'User4',
    age: 40,
    _id: new ObjectId("6316f866e10eb7753ec68911"),
    __v: 0
  },
  {
    name: 'User5',
    age: 50,
    _id: new ObjectId("6316f866e10eb7753ec68912"),
    __v: 0
  },
  {
    name: 'User6',
    age: 60,
    _id: new ObjectId("6316f866e10eb7753ec68913"),
    __v: 0
  }
]

使用Robo3T GUI工具的数据库的GUI表示:

Mongoose Document Model.insertMany()函数

示例2: 在这个示例中,我们使用mongoose建立了一个数据库连接,并在studentSchema上定义了模型,它具有三个列或字段“name”、“school”和“class”。在这个示例中,我们尝试在一次执行中插入两个文档,但是“class”字段的值(数组的第一个对象)与模式中定义的类型不匹配,这将导致验证错误,并且没有文档会被插入到数据库中。结果是你会得到一个验证错误,并且在数据库中不会插入任何文档。

  • app.js: 在app.js文件中写下以下代码:
// Require mongoose module
const mongoose = require("mongoose");
 
// Set Up the Database connection
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});
 
const studentSchema = new mongoose.Schema({
    name: String,
    school: String,
    class: Number,
});
 
// Defining studentSchema model
const Student = mongoose.model("Student", studentSchema);
 
Student.insertMany([
    { name: "Student1", school: "ABC", class: "A1" },
    { name: "Student2", school: "ABC", class: "A2" },
]).then((result) => {
    console.log(result);
});

运行程序的步骤: 从项目的根目录中执行以下命令来运行应用程序:

node app.js

输出:

UnhandledPromiseRejectionWarning: ValidationError:
Student validation failed: class: Cast to Number failed for value
"A1" (type string) at path "class"

使用Robo3T GUI工具的数据库的GUI表示:

Mongoose Document Model.insertMany()函数

参考: https://mongoosejs.com/docs/api/model.html#model_Model-insertMany

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程