{
  "schema_version": 2,
  "id": "commands/json.numpowby",
  "title": "JSON.NUMPOWBY",
  "url": "https://redis.io/docs/latest/commands/json.numpowby/",
  "summary": "Raises the numeric value at path to the power of a value",
  "since": "2.0.0",
  "tags": [
    "docs",
    "develop",
    "stack",
    "oss",
    "rs",
    "rc",
    "oss",
    "kubernetes",
    "clients"
  ],
  "last_updated": "2026-10-06T06:53:54-07:00",
  "page_type": "content",
  "content_hash": "568948576a8396af28a4822d4a9d0a8a88b51ac1ab1ff8c27c00c9c811c5e0a9",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Raise the number value stored at `path` to the power of `value`\n\n[Examples](#examples)"
    },
    {
      "id": "required-arguments",
      "title": "Required arguments",
      "role": "content",
      "text": "<details open><summary><code>key</code></summary> \n\nis key to modify.\n</details>\n\n<details open><summary><code>path</code></summary> \n\nis JSONPath to specify.\n</details>\n\n<details open><summary><code>value</code></summary> \n\nis number value to use as the exponent.\n</details>"
    },
    {
      "id": "examples",
      "title": "Examples",
      "role": "example",
      "text": "redis> JSON.SET doc . '{\"a\":\"b\",\"b\":[{\"a\":2}, {\"a\":5}, {\"a\":\"c\"}]}'\nOK\nredis> JSON.NUMPOWBY doc $.a 2\n\"[null]\"\nredis> JSON.NUMPOWBY doc $..a 2\n\"[null,4,25,null]\""
    },
    {
      "id": "details",
      "title": "Details",
      "role": "content",
      "text": "If both the stored value and `value` are integers, the result is an integer. It must fit in a 64-bit signed integer, or the command fails with a `numeric overflow` error.\n\nA negative integer exponent with an integer stored value also fails with `numeric overflow`. To get a fractional result, write the exponent as a floating-point number: raising `2` to `-1.0` returns `0.5`.\n\nIf either number is a floating-point number, the command uses floating-point arithmetic. A result that isn't a finite real number, such as `0` raised to `-1.0` or `-8` raised to `0.5`, fails with a `result is not a number` error.\n\nWhen the command fails, the stored value doesn't change."
    },
    {
      "id": "redis-software-and-redis-cloud-compatibility",
      "title": "Redis Software and Redis Cloud compatibility",
      "role": "content",
      "text": "| Redis<br />Software | Redis<br />Cloud | <span style=\"min-width: 9em; display: table-cell\">Notes</span> |\n|:----------------------|:-----------------|:------|\n| <span title=\"Supported\">&#x2705; Supported</span><br /> | <span title=\"Supported\">&#x2705; Flexible & Annual</span><br /><span title=\"Supported\">&#x2705; Free & Fixed</nobr></span> |  |"
    },
    {
      "id": "return-information",
      "title": "Return information",
      "role": "returns",
      "text": "**RESP2:**\n\nWith `$`-based path argument: [Bulk string reply](https://redis.io/docs/latest/develop/reference/protocol-spec#bulk-strings) containing a JSON array with one element per matching path: the new value, or `null` if the matching value is not a number. The array is empty if no path matches.\n\nWith `.`-based path argument: [Bulk string reply](https://redis.io/docs/latest/develop/reference/protocol-spec#bulk-strings) representing the stringified new value. If the path matches more than one number, the command updates all of them and returns the last new value. [Simple error reply](https://redis.io/docs/latest/develop/reference/protocol-spec#simple-errors) if no matching value is a number.\n\nWith either path argument: [simple error reply](https://redis.io/docs/latest/develop/reference/protocol-spec#simple-errors) if the key doesn't exist or the result is out of range.\n\n**RESP3:**\n\nThe path syntax doesn't change the reply. [Array reply](https://redis.io/docs/latest/develop/reference/protocol-spec#arrays) with one element per matching path: an [integer reply](https://redis.io/docs/latest/develop/reference/protocol-spec#integers) or [double reply](https://redis.io/docs/latest/develop/reference/protocol-spec#doubles) containing the new value, or a [null reply](https://redis.io/docs/latest/develop/reference/protocol-spec#nulls) if the matching value is not a number. The array is empty if no path matches.\n\n[Simple error reply](https://redis.io/docs/latest/develop/reference/protocol-spec#simple-errors) if the key doesn't exist or the result is out of range."
    },
    {
      "id": "see-also",
      "title": "See also",
      "role": "related",
      "text": "[`JSON.NUMINCRBY`](https://redis.io/docs/latest/commands/json.numincrby) | [`JSON.NUMMULTBY`](https://redis.io/docs/latest/commands/json.nummultby)"
    },
    {
      "id": "related-topics",
      "title": "Related topics",
      "role": "related",
      "text": "* [RedisJSON](https://redis.io/docs/latest/develop/data-types/json)\n* [Index and search JSON documents](https://redis.io/docs/latest/develop/ai/search-and-query/indexing)"
    }
  ],
  "examples": []
}
