w3resource

Rename Field for All MongoDB Documents Using $rename Operator

Renaming a field Across all documents in MongoDB

To rename a field across all documents in a MongoDB collection, you use the $rename operator with the updateMany() method. This process changes the field's name for every document in the collection, which is often required when refactoring a database schema.

Syntax:

db.collection.updateMany(
   { /* filter (optional) */ },
   { $rename: { "oldFieldName": "newFieldName" } }
)

Explanation:

  • db.collection: Replace collection with the name of your MongoDB collection.
  • updateMany(): Used to update all documents that match the specified filter.
  • $rename: MongoDB operator used to rename a field.

Example:

Here's a practical example that renames a field called username to user_name in all documents of a collection called users.

Code:

// Connect to the "users" collection and rename the "username" field to "user_name" in all documents
db.users.updateMany(
   {}, // empty filter to target all documents
   { $rename: { "username": "user_name" } } // rename "username" to "user_name"
)

Explanation:

    1. db.users.updateMany:

    • We use updateMany() on the users collection to target all documents. An empty filter {} is passed to apply the change to every document in the collection.

    2. { $rename: { "username": "user_name" } }:

    • The $rename operator takes a mapping of old field names to new field names. Here, "username" will be renamed to "user_name" in every document.

After executing this command, each document in the users collection will have user_name instead of username.

Practical Guides to MongoDB Snippets and Examples.



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/renaming-a-field-across-all-documents-in-mongodb.php