乐闻世界logo
搜索文章和话题

What is the diffrent between save vs insert vs create in mongoose?

1个答案

1

Mongoose is an Object Data Modeling (ODM) library for MongoDB, providing a convenient API for working with MongoDB in Node.js. In Mongoose, the save, insert, and create methods are used to save data to the MongoDB database, but their usage scenarios and behaviors differ slightly.

save Method

The save method is a method on a Mongoose model instance. It is used to save a model instance (document) to the database. If the model instance is new, it inserts; if it already exists in the database (typically retrieved via a query), it updates.

Example:

javascript
const kitty = new Cat({ name: 'Zildjian' }); kitty.save((err, savedKitty) => { if (err) return console.error(err); console.log(savedKitty.name + ' saved to database.'); });

insert Method

The insert method is part of MongoDB's native driver, exposed by Mongoose via Model.collection.insert or Model.insertMany. This method is typically used for bulk inserting multiple documents to the database, without performing model validation, applying default values, or triggering Mongoose middleware.

Example:

javascript
Cat.insertMany([{ name: 'Kitty' }, { name: 'Catnip' }], (err, docs) => { if (err) return console.error(err); console.log('Multiple cats inserted to database.'); });

create Method

The create method is a static method on a model, which can create a single document or multiple documents and save them to the database. Unlike insertMany, the create method performs model validation, applies default values, and triggers Mongoose middleware.

Example:

javascript
Cat.create({ name: 'Fluffy' }, (err, createdCat) => { if (err) return console.error(err); console.log(createdCat.name + ' created and saved to database.'); });

Or to create multiple documents:

javascript
Cat.create([{ name: 'Fluffy' }, { name: 'Paws' }], (err, createdCats) => { if (err) return console.error(err); createdCats.forEach(cat => console.log(cat.name + ' created and saved to database.')); });

Summary

  • save: Used to save a single document, which may be new (insert) or update an existing document (update), performing model validation, applying default values, and triggering middleware.
  • insert: Using MongoDB driver capabilities, for bulk inserting documents, without Mongoose-level validation, default values, or middleware triggers.
  • create: Creates and saves one or multiple documents, performing model validation, applying default values, and triggering middleware, suitable for scenarios requiring validation and default values.

In practical applications, the choice of method depends on specific scenarios and requirements. For example, if bulk inserting data without concern for validation and default values, insertMany might be chosen. If validation and applying default values are needed during insertion, create might be selected. The save method is typically used for handling single documents and updating existing instances.

2024年6月29日 12:07 回复

你的答案