search
HomeDatabaseMongoDBHow do I create, read, update, and delete (CRUD) documents in MongoDB?

This article details performing Create, Read, Update, and Delete (CRUD) operations in MongoDB. It covers using methods like insertOne(), find(), updateOne(), deleteOne(), and best practices for efficient operations including indexing, batch operatio

How do I create, read, update, and delete (CRUD) documents in MongoDB?

How to Perform CRUD Operations in MongoDB

This section details how to perform Create, Read, Update, and Delete (CRUD) operations in MongoDB. We'll use the example of a collection named "products" with documents containing _id, name, price, and description fields.

Creating Documents: To create a new document (insert), you use the insertOne() method (for a single document) or insertMany() (for multiple documents). Here's an example using the MongoDB shell:

db.products.insertOne( { name: "Laptop", price: 1200, description: "Powerful laptop" } )
db.products.insertMany( [
  { name: "Tablet", price: 300, description: "Android tablet" },
  { name: "Keyboard", price: 75, description: "Mechanical keyboard" }
] )

This code inserts one laptop document and then inserts multiple documents (tablet and keyboard) in a single operation. The _id field is automatically generated if not provided. Driver-specific implementations will be similar, using the respective driver's insertOne() or insertMany() methods.

Reading Documents: Reading documents involves querying the collection using find(). You can specify filters to retrieve specific documents. For example:

// Find all products
db.products.find()

// Find products with price less than 500
db.products.find( { price: { $lt: 500 } } )

// Find a single product by its ID
db.products.findOne( { _id: ObjectId("...") } ) // Replace ... with the actual ObjectId

find() returns a cursor, allowing you to iterate through the results. findOne() returns a single document matching the query. Again, driver implementations will have equivalent methods.

Updating Documents: MongoDB provides several ways to update documents. updateOne() updates a single document, while updateMany() updates multiple documents. You use the $set operator to modify fields.

// Update the price of a specific product
db.products.updateOne( { name: "Laptop" }, { $set: { price: 1300 } } )

// Increase the price of all products by 10%
db.products.updateMany( {}, { $inc: { price: { $multiply: [ 0.1, "$price" ] } } } )

The first example updates the price of a laptop. The second example uses the $inc operator to increment the price of all products. More complex updates can be achieved using other update operators like $push, $pull, $addToSet, etc.

Deleting Documents: deleteOne() removes a single document, and deleteMany() removes multiple documents.

// Delete a specific product
db.products.deleteOne( { name: "Keyboard" } )

// Delete all products with price greater than 1000
db.products.deleteMany( { price: { $gt: 1000 } } )

These commands remove documents based on the provided criteria.

Best Practices for Efficient CRUD Operations in MongoDB

Efficient CRUD operations require careful consideration of several factors:

  • Indexing: Create indexes on frequently queried fields to speed up find() operations. Indexes are similar to indices in relational databases. Choose appropriate index types (e.g., single-field, compound, geospatial) based on your queries.
  • Batch Operations: Use insertMany(), updateMany(), and deleteMany() to perform operations on multiple documents in a single batch, significantly improving performance compared to individual operations.
  • Data Modeling: Design your data model carefully to minimize the number of queries needed for common operations. Proper schema design can dramatically improve query performance.
  • Query Optimization: Avoid using $where clauses as they can be slow. Instead, use operators like $gt, $lt, $in, etc., which leverage indexes effectively. Use appropriate projection ({ _id: 0, name: 1, price: 1 }) to retrieve only the necessary fields, reducing data transfer.
  • Connection Pooling: Use connection pooling to reuse database connections, reducing the overhead of establishing new connections for each operation. Most drivers offer built-in connection pooling capabilities.

Handling Errors During CRUD Operations

Error handling is crucial for robust MongoDB applications. Drivers provide mechanisms to catch and handle exceptions during CRUD operations.

  • Try-Catch Blocks: Wrap your CRUD operations within try-catch blocks to handle potential errors like network issues, invalid data, or database errors.
  • Error Codes: Examine the error codes returned by the database to determine the cause of the error and implement appropriate logic to handle it gracefully. MongoDB provides detailed error code documentation.
  • Logging: Log errors for debugging and monitoring purposes. Include relevant information such as the error message, stack trace, and the operation that failed.
  • Retry Mechanism: Implement a retry mechanism for transient errors (e.g., network timeouts). Retry a failed operation after a short delay to improve resilience.

Performing CRUD Operations with Different Drivers

The specific methods for performing CRUD operations vary slightly depending on the driver used. Here's a brief overview for Node.js and Python:

Node.js (using the mongodb driver):

const { MongoClient } = require('mongodb');

// ... connection code ...

const client = new MongoClient(uri);

async function run() {
  try {
    await client.connect();
    const db = client.db('mydatabase');
    const collection = db.collection('products');

    // ... CRUD operations using collection.insertOne(), collection.find(), etc. ...
  } finally {
    await client.close();
  }
}
run().catch(console.dir);

Python (using the pymongo driver):

import pymongo

# ... connection code ...

client = pymongo.MongoClient(uri)
db = client['mydatabase']
collection = db['products']

# ... CRUD operations using collection.insert_one(), collection.find(), etc. ...

client.close()

Both examples demonstrate the basic structure. Consult the documentation for your specific driver for detailed information on the available methods and options. Remember to replace placeholders like uri with your actual connection string.

The above is the detailed content of How do I create, read, update, and delete (CRUD) documents in MongoDB?. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
MongoDB: An Introduction to the NoSQL DatabaseMongoDB: An Introduction to the NoSQL DatabaseApr 19, 2025 am 12:05 AM

MongoDB is a document-based NoSQL database that uses BSON format to store data, suitable for processing complex and unstructured data. 1) Its document model is flexible and suitable for frequently changing data structures. 2) MongoDB uses WiredTiger storage engine and query optimizer to support efficient data operations and queries. 3) Basic operations include inserting, querying, updating and deleting documents. 4) Advanced usage includes using an aggregation framework for complex data analysis. 5) Common errors include connection problems, query performance problems, and data consistency problems. 6) Performance optimization and best practices include index optimization, data modeling, sharding, caching, monitoring and tuning.

MongoDB vs. Relational Databases: A ComparisonMongoDB vs. Relational Databases: A ComparisonApr 18, 2025 am 12:08 AM

MongoDB is suitable for scenarios that require flexible data models and high scalability, while relational databases are more suitable for applications that complex queries and transaction processing. 1) MongoDB's document model adapts to the rapid iterative modern application development. 2) Relational databases support complex queries and financial systems through table structure and SQL. 3) MongoDB achieves horizontal scaling through sharding, which is suitable for large-scale data processing. 4) Relational databases rely on vertical expansion and are suitable for scenarios where queries and indexes need to be optimized.

MongoDB vs. Oracle: Examining Performance and ScalabilityMongoDB vs. Oracle: Examining Performance and ScalabilityApr 17, 2025 am 12:04 AM

MongoDB performs excellent in performance and scalability, suitable for high scalability and flexibility requirements; Oracle performs excellent in requiring strict transaction control and complex queries. 1.MongoDB achieves high scalability through sharding technology, suitable for large-scale data and high concurrency scenarios. 2. Oracle relies on optimizers and parallel processing to improve performance, suitable for structured data and transaction control needs.

MongoDB vs. Oracle: Understanding Key DifferencesMongoDB vs. Oracle: Understanding Key DifferencesApr 16, 2025 am 12:01 AM

MongoDB is suitable for handling large-scale unstructured data, and Oracle is suitable for enterprise-level applications that require transaction consistency. 1.MongoDB provides flexibility and high performance, suitable for processing user behavior data. 2. Oracle is known for its stability and powerful functions and is suitable for financial systems. 3.MongoDB uses document models, and Oracle uses relational models. 4.MongoDB is suitable for social media applications, while Oracle is suitable for enterprise-level applications.

MongoDB: Scaling and Performance ConsiderationsMongoDB: Scaling and Performance ConsiderationsApr 15, 2025 am 12:02 AM

MongoDB's scalability and performance considerations include horizontal scaling, vertical scaling, and performance optimization. 1. Horizontal expansion is achieved through sharding technology to improve system capacity. 2. Vertical expansion improves performance by increasing hardware resources. 3. Performance optimization is achieved through rational design of indexes and optimized query strategies.

The Power of MongoDB: Data Management in the Modern EraThe Power of MongoDB: Data Management in the Modern EraApr 13, 2025 am 12:04 AM

MongoDB is a NoSQL database because of its flexibility and scalability are very important in modern data management. It uses document storage, is suitable for processing large-scale, variable data, and provides powerful query and indexing capabilities.

How to delete mongodb in batchesHow to delete mongodb in batchesApr 12, 2025 am 09:27 AM

You can use the following methods to delete documents in MongoDB: 1. The $in operator specifies the list of documents to be deleted; 2. The regular expression matches documents that meet the criteria; 3. The $exists operator deletes documents with the specified fields; 4. The find() and remove() methods first get and then delete the document. Please note that these operations cannot use transactions and may delete all matching documents, so be careful when using them.

How to set mongodb commandHow to set mongodb commandApr 12, 2025 am 09:24 AM

To set up a MongoDB database, you can use the command line (use and db.createCollection()) or the mongo shell (mongo, use and db.createCollection()). Other setting options include viewing database (show dbs), viewing collections (show collections), deleting database (db.dropDatabase()), deleting collections (db.<collection_name>.drop()), inserting documents (db.<collecti

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.