INSERT INTO default(KEY _key, VALUE _data) SELECT d.`key` AS _key, d.data AS _data FROM [{"key": "abc", "data": {"name": "xyz", "age": 21}}, {"key": "abc1", "data": {"name": "xyz", "age": 21}}, {"key": "abc2", "data": {"name": "xyz", "age": 21}}, {"key": "abc3", "data": {"name": "xyz", "age": 21}} , {"key": "abc100000", "data": {"name": "xyz", "age": 21}}] AS d;
OR
INSERT INTO default VALUES ("001",{"array":[{"key": "abc", "data": {"name": "xyz", "age": 21}}, {"key": "abc1", "data": {"name": "xyz", "age": 21}}, {"key": "abc2", "data": {"name": "xyz", "age": 21}}, {"key": "abc3", "data": {"name": "xyz", "age": 21}} , {"key": "abc100000", "data": {"name": "xyz", "age": 21}}] });
INSERT INTO default(KEY _key, VALUE _data) SELECT d.`key` AS _key, d.data AS _data FROM default AS d1 USE KEYS ["001"] UNNEST d1.array AS d;
If the array has too many elements best option will be use SDKs/Clients loop through the array insert each array element as separate document or batch them n at a time.