Command: MAP.DEL


Overview

The MAP.DEL command is used to delete either an entire map stored at a specific key or a specific field within that map. It supports both single-key and key-field deletion operations, ensuring efficient and flexible map data handling in memory.

Command Name

MAP.DEL

Description

MAP.DEL deletes a map object entirely or removes a specific key-value pair (field) from the map stored at a given key.

  • If only <key> is provided, the entire map object will be removed.

  • If both <key> and <mapKey> are provided, only the field <mapKey> is deleted from the map.

Use Cases

  • Remove a user’s entire settings map.

  • Delete a device entry from a user’s device map.

  • Clean up stale or invalid configuration fields without affecting the rest of the map.

  • Implement dynamic field pruning for memory optimization.


Syntax

  MAP.DEL <key> [<mapKey>]
  
  • <key> : The main key pointing to the map (required).

  • <mapKey> : The specific field in the map to delete (optional).

Permissions

  • Write access to the key’s shard.

  • Authorization to modify or delete in-memory objects.


Examples

1. Delete a specific field from a map

Assume the current value of user-001:devices is:

  {
  "device-6d6f6sa66d": "Android",
  "device-x4d5f2c1b2e": "iOS"
}
  
  localhost:9219> MAP.DEL user-001:devices device-6d6f6sa66d
Ok
  

Result:

  {
  "device-x4d5f2c1b2e": "iOS"
}
  

2. Delete the entire map
  localhost:9219> MAP.DEL user-001:settings
Ok
  

Result: The entire user-001:settings entry is removed from memory.


Behavior on Error

Error Condition Description
More than 2 arguments InvalidArgsError: More than 2 args not supported, Supported args Key or key and mapKey
Invalid map key (field) InvalidMapKeyError:
Value at key is not a map InvalidValueError: The current value associated with the provided key must be a Map type.

Additional Notes

  • If the map contains only one key and that key is being deleted, the entire map will be removed automatically.

  • If the map does not exist, the command will return Ok without performing any action.