Update & Remove

Update Statement

// Update Statement

db.friendsCollection.update({"firstname":"Ross"}, {$set: {age: 33}})

// Verify the update

db.friendsCollection.find({"firstname":{'$regex' : '^r', '$options' : 'i'}})

Remove Statement

// Remove the attribute / element
db.friendsCollection.update({"firstname": "Phoebe"}, {$unset: {age:""}});

// Remove entire document
db.friendsCollection.remove({firstname: "Ross"}, true);

db.friendsCollection.find();

// Remove all documents from friendsCollection
db.friendsCollection.remove({});

Drop Statement()

db.collection.drop() 

Bulk Insert

Unordered Insert - Asynchronous

var bulk = db.students1.initializeUnorderedBulkOp();
bulk.insert( { firstname: "Sheldon", last_name: "Cooper" } );
bulk.insert( { firstname: "Jerry", last_name: "Seinfeld" } );
bulk.insert( { firstname: "Ray", last_name: "Ramona" } );
bulk.insert( { firstname: "Penny" } );
bulk.insert( { firstname: "Cosmo", last_name: "Kramer" } );
bulk.find({firstname:"Penny"}).update({$set:{lastname:"noName",gender:"F"}})
bulk.execute();
  • Asynchronous Execution: The operations can be executed in parallel or in any order, not necessarily the order in which they were added to the bulk operation. This can lead to performance benefits because MongoDB doesn't need to wait for one operation to complete before starting the next one.

  • Error Handling: If an error occurs, MongoDB will attempt to execute the rest of the operations in the bulk. It does not stop at the first error (unless the error is on the server side, like losing connection).

  • Use Case: Useful when the order of the operations does not affect the outcome and when performance is a priority over execution order.

Ordered Insert - Does in sequence

var bulk = db.students2.initializeOrderedBulkOp();
bulk.insert( { firstname: "Sheldon", last_name: "Cooper" } );
bulk.insert( { firstname: "Jerry", last_name: "Seinfeld" } );
bulk.insert( { firstname: "Ray", last_name: "Ramona" } );
bulk.insert( { firstname: "Penny" } );
bulk.insert( { firstname: "Cosmo", last_name: "Kramer" } );
bulk.find({firstname:"Penny"}).update({$set:{lastname:"noName",gender:"F"}})
bulk.execute();
  • Sequential Execution: The operations are executed in the exact order they were added to the bulk operation. If an operation fails, MongoDB stops processing any remaining operations in the bulk.

  • Error Handling: Stops at the first error encountered. This allows you to know exactly at which point the bulk operation failed, making debugging easier.

  • Use Case: Important when the order of operations affects the final state of the database. For example, if one operation depends on the result of a previous operation, ordered bulk operations ensure that these dependencies are respected.

Last updated