An option that you can use is shown in the following script: (depending on the number of rows in the table you may have performance problems, adjust as needed):
mysql> DROP TABLE IF EXISTS `user`;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE IF NOT EXISTS `user` (
-> `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-> `post` JSON,
-> `interactions` JSON
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO
-> `user` (`post`, `interactions`)
-> VALUES
-> (
-> '{"likes": [["1:scott"],["3:kitty"]]}',
-> '{"likes": [["1:scott"],["3:kitty"]]}'
-> ),
-> (
-> '{"likes": [["2:james"],["1:scott"]]}',
-> '{"likes": [["2:james"],["1:scott"]]}'
-> ),
-> (
-> '{"likes": [["1:scott"],["2:james"]]}',
-> '{"likes": [["1:scott"],["2:james"]]}'
-> );
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> SET @`search` := '2:james';
Query OK, 0 rows affected (0.00 sec)
mysql> UPDATE `user`
-> SET `post` = COALESCE(JSON_REMOVE(`interactions`, LEFT(
-> JSON_UNQUOTE(
-> JSON_SEARCH(`interactions`,
-> 'one',
-> @`search`,
-> NULL,
-> '$.likes')
-> ),
-> CHAR_LENGTH(
-> JSON_UNQUOTE(
-> JSON_SEARCH(`interactions`,
-> 'one',
-> @`search`,
-> NULL,
-> '$.likes'))) - 3)), `interactions`)
-> -- WHERE `id` = 3
-> ;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3 Changed: 2 Warnings: 0
mysql> SELECT
-> `id`,
-> `post`,
-> `interactions`
-> FROM
-> `user`;
+----+---------------------------------------+---------------------------------------+
| id | post | interactions |
+----+---------------------------------------+---------------------------------------+
| 1 | {"likes": [["1:scott"], ["3:kitty"]]} | {"likes": [["1:scott"], ["3:kitty"]]} |
| 2 | {"likes": [["1:scott"]]} | {"likes": [["2:james"], ["1:scott"]]} |
| 3 | {"likes": [["1:scott"]]} | {"likes": [["1:scott"], ["2:james"]]} |
+----+---------------------------------------+---------------------------------------+
3 rows in set (0.00 sec)
See db-fiddle.
usersetpost= JSON_REMOVE(interactions, '$.likes') whereid= 3 and JSON_EXTRACT(interactions, '$.likes.2') = 'james'