w3resource

How to add a new field to all documents in MongoDB Collection?

Add a new field to all documents in MongoDB Collection

To add a new field to every document in a MongoDB collection, you can use the updateMany() method with the $set operator. This operation is useful when you need to add the same field to multiple documents across a collection. The $set operator is efficient and straightforward, making it ideal for adding new fields in bulk updates.

Description:

In MongoDB, you can add a new field to all documents within a collection using the updateMany() method with the $set operator. This allows you to add the same field with a specified value to every document in a collection, without manually updating each document. This technique is particularly useful for schema evolution, where you need to add fields to all documents as your data structure evolves.

Syntax:

The syntax to add a new field to every document in a collection is:

db.<collection>.updateMany(
  {},                       // Empty filter to select all documents
  { $set: { <new_field>: <value> } }
)

Explanation:

  • <collection>: The collection where documents will be updated.
  • <new_field>: The name of the new field to add to each document.
  • <value>: The value to assign to the new field.

Example:

Suppose you have a users collection and you want to add a new field called status with a value of "active" to every document in the collection. Here's how to do it:

Code:

// Add a new field 'status' with the value 'active' to every document in the users collection
db.users.updateMany(
  {},                        // Empty filter to select all documents
  { $set: { status: "active" } } // Set 'status' field to 'active'
)

Explanation:

  • db.users.updateMany(...)
    The updateMany method is called on the users collection to update multiple documents at once.
  • {}
    An empty filter {} is provided to select all documents within the collection. This ensures that every document is updated.
  • { $set: { status: "active" } }
    The $set operator is used to add a new field. Here, it adds a field named status with the value "active" to each document. If status already exists in a document, its value will be updated to "active".

By running this command, all documents in the users collection will now have a status field with the value "active". This approach allows you to efficiently add or update fields in bulk without manually modifying each document.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/mongodb/snippets/how-to-add-a-new-field-to-all-documents-in-mongodb-collection.php