{"id":11798,"date":"2021-09-15T00:00:07","date_gmt":"2021-09-15T07:00:07","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11798"},"modified":"2025-06-13T21:22:56","modified_gmt":"2025-06-14T04:22:56","slug":"how-to-query-json-data-n1ql-node-js-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/how-to-query-json-data-n1ql-node-js-couchbase\/","title":{"rendered":"Node.js \ubc0f Couchbase\uc6a9 SQL++\ub97c \uc0ac\uc6a9\ud558\uc5ec JSON \ub370\uc774\ud130\ub97c \ucffc\ub9ac\ud558\ub294 \ubc29\ubc95"},"content":{"rendered":"<p><strong>\uc624\ub298\uc774 \ubc14\ub85c \uadf8 \ub0a0\uc785\ub2c8\ub2e4.<\/strong> Node.js \uc571\uc774 \"\uac00\uc838 \uc624\uae30\"\ub97c \ud559\uc2b5\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae30\ubcf8 \ud29c\ud1a0\ub9ac\uc5bc\uc744 \ub530\ub77c Couchbase\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud558\uae30 \uc704\ud574 SQL++(\uc77c\uba85 N1QL) \ucffc\ub9ac\ub97c \uc804\uc1a1\ud558\ub294 Node.js \uc571\uc6a9 REST API\ub97c \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uc744 \ubc30\uc6cc\ubcf4\uc138\uc694.<\/p>\n<p>\uc774 \uac8c\uc2dc\ubb3c\uc740 \ub2e4\uc74c\uc5d0 \ub300\ud55c \uc18c\uac1c \uc2dc\ub9ac\uc988\ub97c \uc774\uc5b4\uac11\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/get-started-nodejs-sdk-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc640 \ud568\uaed8 Node.js \uc0ac\uc6a9<\/a>\ub2e4\uc74c\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/how-to-create-nodejs-async-get-upsert-calls-with-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">\ube44\ub3d9\uae30 \ud568\uc218<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/build-a-rest-api-with-node-js-express-and-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Node.js \ubc0f Express\ub85c REST API \uad6c\ucd95\ud558\uae30<\/a>.<\/p>\n<p>\uc624\ub298\uc758 \uac8c\uc2dc\ubb3c\uc740 \uc9c1\uc811 \ubb38\uc11c \uac80\uc0c9\uc744 \uc704\ud55c REST API\ub97c \uad6c\ucd95\ud55c \ud6c4 \uc774\uc804 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \uc911\ub2e8\ub41c \ubd80\ubd84\uc744 \uc774\uc5b4\uc11c \ub2e4\ub8f9\ub2c8\ub2e4.<\/p>\n<h2>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc124\uc815<\/h2>\n<p>This post assumes you have installed the `travel-sample` Bucket that comes with all <a href=\"https:\/\/developer.couchbase.com\/new-to-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4<\/a> \uc124\uce58. \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ub418\ub294 \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud558\uace0 \uc644\uc804\ud788 \ubc18\ubcf5 \uac00\ub2a5\ud55c \ud2b9\uc815 \ubb38\uc11c \uae30\uc900\uc774 \uc0ac\uc6a9\ub418\ubbc0\ub85c \uc774 \ub370\uc774\ud130 \uc9d1\ud569\uc744 \uc124\uce58\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n<p>\uae30\ubcf8 \uc5f0\uacb0 \ubc0f REST API \uae30\ubc18\uc740 \uc774\ubbf8 \ub2e4\uc74c\uc5d0\uc11c \uc124\uba85\ud569\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/build-a-rest-api-with-node-js-express-and-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">\uc9c0\ub09c\uc8fc\uc5d0 \ud568\uaed8 \ub9cc\ub4e0 \uc2a4\ud06c\ub9bd\ud2b8<\/a>. \uc624\ub298\uc758 \ucf54\ub4dc \uc0d8\ud50c\uc5d0 \ud3ec\ud568\ud560 \uc608\uc815\uc774\uc9c0\ub9cc \uc790\uc138\ud55c \uc124\uba85\uc740 \uc774\uc804 \uac8c\uc2dc\ubb3c(\uc704 \ub9c1\ud06c)\uc744 \ubaa8\ub450 \uc77d\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\ub610\ud55c \uc624\ub298\uc758 \uc608\uc81c\uc5d0\uc11c\ub294 \ub2e8\uc21c\ud654\ub97c \uc704\ud574 \uae30\ubcf8 \ubc94\uc704\uc640 \uceec\ub809\uc158\uc744 \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud3c9\uc18c\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c JSON \ub370\uc774\ud130\ub97c \ucffc\ub9ac\ud560 \ub54c\ub294 JavaScript, Node.js \ubc0f NoSQL \ubb38\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub300\ud574 \uae30\ubcf8\uc801\uc73c\ub85c \uc798 \uc54c\uace0 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>N1QL \ucffc\ub9ac \uc774\ud574<\/h2>\n<p>\uadf8\ub9ac\uace0 <a href=\"https:\/\/query-tutorial.couchbase.com\/tutorial\/?ref=blog\/#1\" target=\"_blank\" rel=\"noopener\">N1QL \ucffc\ub9ac \uc5b8\uc5b4<\/a> \ub294 \uba87 \uac00\uc9c0 \uc608\uc678\ub97c \uc81c\uc678\ud558\uba74 SQL\uacfc \uac70\uc758 \ub3d9\uc77c\ud569\ub2c8\ub2e4.<\/p>\n<p>When a N1QL query requests a specific column from a Bucket, it returns a list of all matching JSON documents in the Bucket. If there is no data in the document for the column then you get a `NULL` value, unless it is filtered out with a `WHERE` clause.<\/p>\n<p>\ubb38\uc11c\ub97c \ucffc\ub9ac\ud558\ub824\uba74 \ucd5c\uc18c\ud55c \ubb38\uc11c\uc5d0\uc11c \uae30\ubcf8 \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ud2b9\uc815 \uc5f4\uc5d0 \ub300\ud574 \uc815\uc758\ub41c \ubcf4\uc870 \uc778\ub371\uc2a4\uac00 \uc788\uc73c\uba74 \ucffc\ub9ac \uc131\ub2a5\uc774 \ud5a5\uc0c1\ub429\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ub450 \uc778\ub371\uc2a4\ub294 \ubaa8\ub450 \ucffc\ub9ac \uc790\uccb4\ub85c \ub9cc\ub4e4 \uc218 \uc788\uc73c\uba70 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ud1b5\ud574 \ub610\ub294 <a href=\"https:\/\/docs.couchbase.com\/server\/current\/manage\/manage-ui\/manage-ui.html?ref=blog\" target=\"_blank\" rel=\"noopener\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc6f9 \ucf58\uc194<\/a>. \uc2e4\uc81c\ub85c \uc6f9 \ucf58\uc194\uc5d0\uc11c \uc778\ub371\uc2a4\ub97c \ud0d0\uc0c9\ud558\uc5ec \uc774\ub7ec\ud55c \uc778\ub371\uc2a4\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uace0 \uc778\ub371\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc0ac\uc6a9\ub41c \ucffc\ub9ac\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/couchbase-json-query-rest-api-nodejs.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium_large wp-image-11799\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/couchbase-json-query-rest-api-nodejs-768x269.png\" alt=\"Couchbase web console showing query index being created\" width=\"768\" height=\"269\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-json-query-rest-api-nodejs-768x269.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-json-query-rest-api-nodejs-300x105.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-json-query-rest-api-nodejs-1024x359.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-json-query-rest-api-nodejs-800x280.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-json-query-rest-api-nodejs-20x7.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-json-query-rest-api-nodejs.png 1250w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>\uc704 \uc608\uc81c\uc5d0\uc11c\ub294 \uc5f4\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc740 \uc778\ub371\uc2a4\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4. <code>\ub3c4\uc2dc<\/code> \uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ubb38\uc11c \ub0b4\uc5d0\uc11c <code>\uc5ec\ud589 \uc0d8\ud50c<\/code> \ubc84\ud0b7.<\/p>\n<h2>\uc0d8\ud50c \ucffc\ub9ac<\/h2>\n<p>\ucf54\ub4dc\ub97c \uc791\uc131\ud558\uae30 \uc804\uc5d0 \uc6f9 \ucf58\uc194\uc5d0\uc11c \uc9c1\uc811 \ucffc\ub9ac\ub97c \uc2e4\ud589\ud558\uc5ec \uc608\uc0c1\ud55c \uacb0\uacfc\ub97c \ubc18\ud658\ud558\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc6f9 \ucf58\uc194\uc5d0\uc11c <code>\ucffc\ub9ac<\/code> \ud0ed\uc744 \ud074\ub9ad\ud558\uace0 \ub2e4\uc74c \ucffc\ub9ac\ub97c \uc785\ub825\ud55c \ub2e4\uc74c <code>\uc2e4\ud589<\/code>.<\/p>\n<pre>SELECT * FROM `travel-sample` WHERE city = 'Los Angeles';\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>\ucf58\uc194\uc5d0 323\uac1c\uc758 \ubb38\uc11c\uac00 \uc77c\uce58\ud558\ub294 \uacb0\uacfc\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \ud638\ud154, \uacf5\ud56d \ub4f1 \uc5ec\ub7ec \ubb38\uc11c\uac00 \ud63c\ud569\ub418\uc5b4 \ubc18\ud658\ub41c\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694. <code>\uc720\ud615<\/code> \uceec\ub7fc\uc774 \uc788\uc2b5\ub2c8\ub2e4. (\uc9c0\uae08\uc740 \"\uc5f4\"\uc774\ub77c\uace0 \ub9d0\ud558\uc9c0\ub9cc \uc2e4\uc81c\ub85c\ub294 \ub2e4\ub978 \uac1d\uccb4 \uc548\uc5d0 \ud3ec\ud568\ub420 \uc218 \uc788\ub294 JSON \uac1d\uccb4\/\uc694\uc18c\uc785\ub2c8\ub2e4).<\/p>\n<p>\uc544\ub798 \uc608\uc2dc\uc640 \uac19\uc774 \uba87 \uac1c\uc758 \uc5f4\ub9cc \ubc18\ud658\ud558\ub3c4\ub85d \ucffc\ub9ac\ub97c \uc870\uc815\ud569\ub2c8\ub2e4.<\/p>\n<pre>SELECT type, name, city FROM `travel-sample` WHERE city = 'Los Angeles';\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/couchbase-n1ql-query-hotels-city.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium_large wp-image-11800\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/couchbase-n1ql-query-hotels-city-768x730.png\" alt=\"Couchbase N1QL Query of Travel-sample database\" width=\"768\" height=\"730\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-query-hotels-city-768x730.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-query-hotels-city-300x285.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-query-hotels-city-20x20.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-query-hotels-city.png 796w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>\ucffc\ub9ac \ud568\uc218 \uc791\uc131<\/h2>\n<p>\ub098\uba38\uc9c0 \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uae30 \uc804\uc5d0 \uba3c\uc800 \uc804\ub2ec\uc758 \uae30\ubcf8 \uc0ac\ud56d\ubd80\ud130 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/howtos\/n1ql-queries-with-sdk.html?ref=blog\" target=\"_blank\" rel=\"noopener\">Node.js SDK\ub97c \uc0ac\uc6a9\ud55c \ucffc\ub9ac<\/a>.<\/p>\n<p>\uc644\uc804\ud55c \ud615\uc2dd\uc758 \ucffc\ub9ac \ubb38\uc790\uc5f4\uc744 \uc804\ub2ec\ud558\ub294 \ub300\uc2e0 \ub0b4\uc7a5\ub41c \uc790\ub9ac \ud45c\uc2dc\uc790\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc7ac\uc0ac\uc6a9 \uac00\ub2a5\ud55c \ucf54\ub4dc\ub85c \ub9cc\ub4dc\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \uc774 \uacbd\uc6b0 \uba85\uba85\ub41c \ub9e4\uac1c\ubcc0\uc218\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4: \ucffc\ub9ac\uc5d0\ub294 \ud50c\ub808\uc774\uc2a4\ud640\ub354 \ubcc0\uc218\uac00 \ud3ec\ud568\ub418\uba70, \uc0ac\uc6a9\ud560 \uac12\uc774 \ud3ec\ud568\ub41c \ubcc0\uc218\ub97c \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \ucffc\ub9ac \ubcc0\uc218\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4:<\/p>\n<pre>const querystr = `SELECT type, name, city FROM \\`travel-sample\\` WHERE city = $CITY;`\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>\uadf8\ub7f0 \ub2e4\uc74c \uc785\ub825 \ub9e4\uac1c\ubcc0\uc218 \ubcc0\uc218\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4:<\/p>\n<pre>const params = { parameters: { CITY: 'Los Angeles' }}\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>\uadf8\ub7f0 \ub2e4\uc74c \uc774 \ub450 \uac00\uc9c0\ub97c \ud074\ub7ec\uc2a4\ud130 \ucffc\ub9ac \ud568\uc218\uc5d0 \uc804\ub2ec\ud558\uc5ec \uacb0\uacfc\ub97c \uc2dc\uc791\ud558\uace0 \ubc18\ud658\ud569\ub2c8\ub2e4:<\/p>\n<pre>  let result = await cluster.query(querystr, params)\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>\uc774\uc81c \uc0ac\uc6a9\uc790\uac00 \ub9cc\ub4e0 \ubaa8\ub4e0 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre>  async function getQuery(){\r\n    const querystr = `SELECT type, name, city FROM \\`travel-sample\\` WHERE city = $CITY;`\r\n    const params = { parameters: { CITY: 'Los Angeles' }}\r\n\r\n    try {\r\n      let result = await cluster.query(querystr, params)\r\n      console.log(\"Result:\", result)\r\n      return result\r\n    } catch (error) {\r\n      console.error(\"Query failed: \", error)\r\n    }\r\n  };\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>\ucffc\ub9ac REST\ud654<\/h2>\n<p>\ub2e4\uc74c \ub2e8\uacc4\ub294 \uc774 \ucffc\ub9ac \ud568\uc218\ub97c \uc774\uc804 REST API \ucf54\ub4dc \uc608\uc81c\uc5d0 \ucd94\uac00\ud558\uc5ec \uc785\ub825\ub41c \ub3c4\uc2dc \uc774\ub984\uc744 \uac00\uc838\uc640 \ube0c\ub77c\uc6b0\uc800\uc5d0 HTTP \uacb0\uacfc\ub97c \ub2e4\uc2dc \ubc18\ud658\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \uc544\ub798\uc640 \uac19\uc774 \ub3c4\uc2dc \uc774\ub984\uc5d0 \ub300\ud55c \ubcc0\uc218\ub97c \ud568\uc218\uc5d0 \uc804\ub2ec\ud569\ub2c8\ub2e4:<\/p>\n<pre>  async function getQuery(cityname){...\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Then, create a query endpoint (instead of the `get` route we used in an earlier post) and move the logic for the REST response into that function.<\/p>\n<pre>  app.get('\/query\/:cityname',\r\n    runAsync(async (req, res) =&gt; {\r\n      var cityname = req.params.cityname;\r\n\r\n      var querystr = `SELECT type, name, city FROM \\`travel-sample\\` WHERE city = $CITY;`\r\n      var params = { parameters: { CITY: cityname}}\r\n\r\n      await cluster.query(querystr, params, function(err, result){\r\n        res.json(result)\r\n      })\r\n  }));\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>\uadf8\ub7ec\uba74 \uc544\ub798 \uc774\ubbf8\uc9c0\uc640 \uac19\uc774 \uc6f9 \ube0c\ub77c\uc6b0\uc800 \ub610\ub294 Postman REST API \ub3c4\uad6c\uc5d0\uc11c REST \ud638\ucd9c\uc5d0\uc11c RAW JSON\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/couchbase-n1ql-rest-api-json-response.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium_large wp-image-11801\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/08\/couchbase-n1ql-rest-api-json-response-768x792.png\" alt=\"couchbase N1QL query response from a REST API with node.js\" width=\"768\" height=\"792\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-rest-api-json-response-768x792.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-rest-api-json-response-291x300.png 291w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-rest-api-json-response-994x1024.png 994w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-rest-api-json-response-300x309.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-rest-api-json-response-20x20.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/08\/couchbase-n1ql-rest-api-json-response.png 1045w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>\uc804\uccb4 \ucf54\ub4dc \uc608\uc81c<\/h2>\n<p>\ub2e4\uc74c\uc740 \uc804\uccb4 \uc0d8\ud50c \ucf54\ub4dc \uacb0\uacfc\uc785\ub2c8\ub2e4. \ucc38\uc870\ub97c \uc704\ud574 \ub2e4\ub978 \ubb38\uc11c\uc758 \uc77c\ubd80 \uc774\uc804 \ucf54\ub4dc\uac00 \uc720\uc9c0\ub429\ub2c8\ub2e4.<\/p>\n<pre>var app = require('express')();\r\nvar couchbase = require(\"couchbase\");\r\n\r\nasync function main(){\r\n  app.get('\/get\/:docid',\r\n    runAsync(async (req, res) =&gt; {\r\n      var docid = req.params.docid;\r\n      var docjson = await getDoc(docid, function(err, result){\r\n        res.json(result.content)\r\n      });\r\n  }));\r\n\r\n  app.get('\/query\/:cityname',\r\n    runAsync(async (req, res) =&gt; {\r\n      var cityname = req.params.cityname;\r\n      var querystr = `SELECT type, name, city FROM \\`travel-sample\\` WHERE city = $CITY;`\r\n      var params = { parameters: { CITY: cityname}}\r\n      await cluster.query(querystr, params, function(err, result){\r\n        res.json(result)\r\n      })\r\n  }));\r\n\r\n  app.listen(3000, () =&gt; console.log('Listening on port 3000'));\r\n\r\n  function runAsync (callback) {\r\n    return function (req, res, next) {\r\n      callback(req, res, next)\r\n      .catch(next)\r\n    }\r\n  }\r\n\r\n  var cluster = new couchbase.Cluster(\"couchbase:\/\/localhost\", {\r\n    username: \"Administrator\",\r\n    password: \"Administrator\"\r\n  });\r\n\r\n  var bucket = cluster.bucket(\"travel-sample\");\r\n  var collection = bucket.defaultCollection();\r\n\r\n  var getDoc = async (key) =&gt; {\r\n      var result = await collection.get(key);\r\n      console.log(result)\r\n      return result\r\n  }\r\n}\r\n\r\nmain();\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h2>\uacb0\ub860<\/h2>\n<p>\uc774 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc801\uc6a9\ud560 \uc218 \uc788\ub294 \uc0c8\ub85c\uc6b4 \ubc29\ud5a5\uc774 \ub9ce\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc6b0\uc120, \uc801\uc808\ud55c \uc624\ub958 \ucea1\ucc98\ub97c \ud3ec\ud568\ud558\uac70\ub098 \ucf58\uc194\uc5d0 \ub85c\uadf8 \uc815\ubcf4\ub97c \ucd9c\ub825\ud558\uac70\ub098 <code>results.rows<\/code> \uac1d\uccb4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud45c \ud615\uc2dd\uc758 \uacb0\uacfc\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uacfc \uac19\uc774 \uad8c\uc7a5\ud569\ub2c8\ub2e4. <a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/howtos\/n1ql-queries-with-sdk.html?ref=blog\" target=\"_blank\" rel=\"noopener\">Node.js SDK\uc758 \ucffc\ub9ac \uc0ac\uc6a9\uc5d0 \ub300\ud55c Couchbase \uc124\uba85\uc11c\ub97c \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uc138\uc694.<\/a>.<\/p>\n<p><em>\ub098\uba38\uc9c0 Node.js + Couchbase \ubc29\ubc95 \uc2dc\ub9ac\uc988\ub3c4 \ud655\uc778\ud574 \ubcf4\uc138\uc694:<\/em><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/get-started-nodejs-sdk-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Couchbase\uc6a9 Node.js SDK\ub97c \uc2dc\uc791\ud558\ub294 \ubc29\ubc95<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/how-to-create-nodejs-async-get-upsert-calls-with-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Node.js \ubc0f Couchbase\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube44\ub3d9\uae30 \uac00\uc838\uc624\uae30\/\uac70\uafb8\ub85c \uac00\uc838\uc624\uae30 \ud638\ucd9c\uc744 \ub9cc\ub4dc\ub294 \ubc29\ubc95<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/build-a-rest-api-with-node-js-express-and-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Node.js, Express \ubc0f Couchbase\ub85c REST \uae30\ubc18 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\ucd95\ud558\uae30<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/how-to-query-json-data-n1ql-node-js-couchbase\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Node.js \ubc0f Couchbase\uc6a9 SQL++\ub97c \uc0ac\uc6a9\ud558\uc5ec JSON \ub370\uc774\ud130\ub97c \ucffc\ub9ac\ud558\ub294 \ubc29\ubc95<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/how-to-full-text-search-javascript-app\/?ref=blog\" target=\"_blank\" rel=\"noopener\">\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uc571\uc5d0 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \uae30\ub2a5\uc744 \ucd94\uac00\ud558\ub294 \ubc29\ubc95<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 30px\" aria-hidden=\"true\"><\/div>\n<div style=\"text-align: center\"><strong>\uc18c\ub9e4\ub97c \uac77\uc5b4\ubd99\uc774\uace0 \uc9c1\uc811 \ud574\ubcfc \uc900\ube44\uac00 \ub418\uc168\ub098\uc694? <br \/>?<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/downloads\/?ref=blog\" target=\"_blank\" rel=\"noopener\">\uc9c0\uae08 Couchbase \ud14c\uc2a4\ud2b8\ud558\uae30<\/a><\/strong><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Today&#8217;s the day your Node.js app learns &#8220;go fetch.&#8221; By following this basic tutorial, you&#8217;ll learn how to build a REST API for your Node.js app that sends SQL++ (aka N1QL) queries to retrieve data from Couchbase. This post continues [&hellip;]<\/p>","protected":false},"author":75185,"featured_media":11926,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1815,9417,9381,9327,1822,1812,2201],"tags":[1798,1543,1261,1725,1950],"ppma_author":[9163],"class_list":["post-11798","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-performance","category-indexing","category-javascript","category-node-js","category-n1ql-query","category-tools-sdks","tag-couchbase-web-console","tag-javascript","tag-json","tag-nosql-database","tag-rest-api"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Query JSON Data Using SQL++ for Node.js with JavaScript<\/title>\n<meta name=\"description\" content=\"Use this basic tutorial to learn how to build a REST API for your Node.js app that sends SQL++ (aka N1QL) queries to retrieve data from Couchbase.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/how-to-query-json-data-n1ql-node-js-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Query JSON Data Using SQL++ for Node.js and Couchbase\" \/>\n<meta property=\"og:description\" content=\"Use this basic tutorial to learn how to build a REST API for your Node.js app that sends SQL++ (aka N1QL) queries to retrieve data from Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/how-to-query-json-data-n1ql-node-js-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-15T07:00:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:22:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase-social.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"418\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tyler Mitchell - Senior Product Marketing Manager\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase-social.png\" \/>\n<meta name=\"twitter:creator\" content=\"@1tylermitchell\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tyler Mitchell - Senior Product Marketing Manager\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/\"},\"author\":{\"name\":\"Tyler Mitchell - Senior Product Marketing Manager\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/684cc0e5c60cd2e4b591db9621494ed0\"},\"headline\":\"How to Query JSON Data Using SQL++ for Node.js and Couchbase\",\"datePublished\":\"2021-09-15T07:00:07+00:00\",\"dateModified\":\"2025-06-14T04:22:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/\"},\"wordCount\":884,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase.png\",\"keywords\":[\"Couchbase Web Console\",\"javascript\",\"JSON\",\"NoSQL Database\",\"REST API\"],\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"High Performance\",\"Indexing\",\"JavaScript\",\"Node.js\",\"SQL++ \/ N1QL Query\",\"Tools &amp; SDKs\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/\",\"name\":\"Query JSON Data Using SQL++ for Node.js with JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase.png\",\"datePublished\":\"2021-09-15T07:00:07+00:00\",\"dateModified\":\"2025-06-14T04:22:56+00:00\",\"description\":\"Use this basic tutorial to learn how to build a REST API for your Node.js app that sends SQL++ (aka N1QL) queries to retrieve data from Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase.png\",\"width\":1200,\"height\":628,\"caption\":\"Learn how to query JSON documents using N1QL and a REST API for Node.js and Couchbase database\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Query JSON Data Using SQL++ for Node.js and Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/684cc0e5c60cd2e4b591db9621494ed0\",\"name\":\"Tyler Mitchell - Senior Product Marketing Manager\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d8a7c532bf2b94b7a2fe7a8439aafd75\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ebec3213e756f2e1f7118fcb5722e2cd1484c9256ae34ceb8f77054b986f21ce?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ebec3213e756f2e1f7118fcb5722e2cd1484c9256ae34ceb8f77054b986f21ce?s=96&d=mm&r=g\",\"caption\":\"Tyler Mitchell - Senior Product Marketing Manager\"},\"description\":\"Works as Senior Product Marketing Manager at Couchbase, helping bring knowledge about products into the public limelight while also supporting our field teams with valuable content. His personal passion is all things geospatial, having worked in GIS for half his career. Now AI and Vector Search is top of mind.\",\"sameAs\":[\"https:\/\/linkedin.com\/in\/tylermitchell\",\"https:\/\/x.com\/1tylermitchell\",\"https:\/\/www.youtube.com\/channel\/UCBZFuoiTcg0f3lGSQwLjeTg\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/tylermitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Query JSON Data Using SQL++ for Node.js with JavaScript","description":"\uc774 \uae30\ubcf8 \ud29c\ud1a0\ub9ac\uc5bc\uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud558\uae30 \uc704\ud574 SQL++(\uc77c\uba85 N1QL) \ucffc\ub9ac\ub97c \uc804\uc1a1\ud558\ub294 Node.js \uc571\uc6a9 REST API\ub97c \ube4c\ub4dc\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/how-to-query-json-data-n1ql-node-js-couchbase\/","og_locale":"ko_KR","og_type":"article","og_title":"How to Query JSON Data Using SQL++ for Node.js and Couchbase","og_description":"Use this basic tutorial to learn how to build a REST API for your Node.js app that sends SQL++ (aka N1QL) queries to retrieve data from Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/how-to-query-json-data-n1ql-node-js-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-09-15T07:00:07+00:00","article_modified_time":"2025-06-14T04:22:56+00:00","og_image":[{"width":800,"height":418,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase-social.png","type":"image\/png"}],"author":"Tyler Mitchell - Senior Product Marketing Manager","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase-social.png","twitter_creator":"@1tylermitchell","twitter_misc":{"Written by":"Tyler Mitchell - Senior Product Marketing Manager","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/"},"author":{"name":"Tyler Mitchell - Senior Product Marketing Manager","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/684cc0e5c60cd2e4b591db9621494ed0"},"headline":"How to Query JSON Data Using SQL++ for Node.js and Couchbase","datePublished":"2021-09-15T07:00:07+00:00","dateModified":"2025-06-14T04:22:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/"},"wordCount":884,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase.png","keywords":["Couchbase Web Console","javascript","JSON","NoSQL Database","REST API"],"articleSection":["Application Design","Best Practices and Tutorials","High Performance","Indexing","JavaScript","Node.js","SQL++ \/ N1QL Query","Tools &amp; SDKs"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/","name":"Query JSON Data Using SQL++ for Node.js with JavaScript","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase.png","datePublished":"2021-09-15T07:00:07+00:00","dateModified":"2025-06-14T04:22:56+00:00","description":"\uc774 \uae30\ubcf8 \ud29c\ud1a0\ub9ac\uc5bc\uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud558\uae30 \uc704\ud574 SQL++(\uc77c\uba85 N1QL) \ucffc\ub9ac\ub97c \uc804\uc1a1\ud558\ub294 Node.js \uc571\uc6a9 REST API\ub97c \ube4c\ub4dc\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/09\/n1ql-queries-how-to-fetch-json-data-nodejs-couchbase.png","width":1200,"height":628,"caption":"Learn how to query JSON documents using N1QL and a REST API for Node.js and Couchbase database"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/how-to-query-json-data-n1ql-node-js-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Query JSON Data Using SQL++ for Node.js and Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/684cc0e5c60cd2e4b591db9621494ed0","name":"\ud0c0\uc77c\ub7ec \ubbf8\uccbc - \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \ub9e4\ub2c8\uc800","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d8a7c532bf2b94b7a2fe7a8439aafd75","url":"https:\/\/secure.gravatar.com\/avatar\/ebec3213e756f2e1f7118fcb5722e2cd1484c9256ae34ceb8f77054b986f21ce?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ebec3213e756f2e1f7118fcb5722e2cd1484c9256ae34ceb8f77054b986f21ce?s=96&d=mm&r=g","caption":"Tyler Mitchell - Senior Product Marketing Manager"},"description":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \ub9e4\ub2c8\uc800\ub85c \uc77c\ud558\uba74\uc11c \uc81c\ud488\uc5d0 \ub300\ud55c \uc9c0\uc2dd\uc744 \ub300\uc911\uc5d0\uac8c \uc54c\ub9ac\ub294 \ub3d9\uc2dc\uc5d0 \uac00\uce58 \uc788\ub294 \ucf58\ud150\uce20\ub85c \ud604\uc7a5 \ud300\uc744 \uc9c0\uc6d0\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uacbd\ub825 \uc808\ubc18\uc744 GIS \ubd84\uc57c\uc5d0\uc11c \uc77c\ud55c \uadf8\ub294 \uc9c0\ub9ac\uacf5\uac04\uc5d0 \ub300\ud55c \uac1c\uc778\uc801\uc778 \uc5f4\uc815\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc9c0\uae08\uc740 AI\uc640 \ubca1\ud130 \uac80\uc0c9\uc744 \uac00\uc7a5 \uc911\uc694\ud558\uac8c \uc0dd\uac01\ud569\ub2c8\ub2e4.","sameAs":["https:\/\/linkedin.com\/in\/tylermitchell","https:\/\/x.com\/1tylermitchell","https:\/\/www.youtube.com\/channel\/UCBZFuoiTcg0f3lGSQwLjeTg"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/tylermitchell\/"}]}},"authors":[{"term_id":9163,"user_id":75185,"is_guest":0,"slug":"tylermitchell","display_name":"Tyler Mitchell - Senior Product Marketing Manager","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/876da1e4284f1832c871b3514caf7867357744b8c0a370ef6f53a79dee2f379e?s=96&d=mm&r=g","author_category":"","last_name":"Mitchell - Senior Product Marketing Manager","first_name":"Tyler","job_title":"Senior Product Marketing Manager","user_url":"","description":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \ub9e4\ub2c8\uc800\ub85c \uc77c\ud558\uba74\uc11c \uc81c\ud488\uc5d0 \ub300\ud55c \uc9c0\uc2dd\uc744 \ub300\uc911\uc5d0\uac8c \uc54c\ub9ac\ub294 \ub3d9\uc2dc\uc5d0 \uac00\uce58 \uc788\ub294 \ucf58\ud150\uce20\ub85c \ud604\uc7a5 \ud300\uc744 \uc9c0\uc6d0\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uacbd\ub825 \uc808\ubc18\uc744 GIS \ubd84\uc57c\uc5d0\uc11c \uc77c\ud55c \uadf8\ub294 \uc9c0\ub9ac\uacf5\uac04\uc5d0 \ub300\ud55c \uac1c\uc778\uc801\uc778 \uc5f4\uc815\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc9c0\uae08\uc740 AI\uc640 \ubca1\ud130 \uac80\uc0c9\uc744 \uac00\uc7a5 \uc911\uc694\ud558\uac8c \uc0dd\uac01\ud569\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/11798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/75185"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=11798"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/11798\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/11926"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=11798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=11798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=11798"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=11798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}