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.



Follow us on Facebook and Twitter for latest update.