{"id":6386,"date":"2019-02-17T19:35:55","date_gmt":"2019-02-18T03:35:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6386"},"modified":"2025-06-13T17:22:10","modified_gmt":"2025-06-14T00:22:10","slug":"n1ql-query-with-self-referencing-hierarchy","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/n1ql-query-with-self-referencing-hierarchy\/","title":{"rendered":"\uc790\uccb4 \ucc38\uc870 \uacc4\uce35 \uad6c\uc870\uac00 \uc788\ub294 N1QL \ucffc\ub9ac"},"content":{"rendered":"<p>\ube44\uc988\ub2c8\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc790\uc8fc \ub4f1\uc7a5\ud558\ub294 \ub370\uc774\ud130 \uad6c\uc870\ub294 \uacc4\uce35\uc801 \ub370\uc774\ud130 \uad6c\uc870\uc785\ub2c8\ub2e4. \uacc4\uce35 \uad6c\uc870\ub294 \uc885\uc885 \ub3d9\uc77c\ud55c \uac1c\uccb4 \uac04\uc758 \uc0c1\uc704-\ud558\uc704 \uad00\uacc4\ub97c \ucea1\ucc98\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ud68c\uc0ac \uad6c\uc870\ub294 \uc9c1\uc6d0 \uac04\uc758 \ubcf4\uace0 \ub77c\uc778\uc744 \ucea1\ucc98\ud569\ub2c8\ub2e4. \ube44\uc988\ub2c8\uc2a4 \uc870\uc9c1\uc740 \ubaa8\ud68c\uc0ac\uc640 \uc790\ud68c\uc0ac \uac04\uc758 \uad00\uacc4\ub97c \ucea1\ucc98\ud569\ub2c8\ub2e4. \uc601\uc5c5\uc758 \uc9c0\uc5ed \uacc4\uce35 \uad6c\uc870. \uc7ac\ubb34 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uacc4\uc815 \uc7a5\ubd80.<\/p>\n<p>\uacc4\uce35 \uad6c\uc870\uc758 \uc790\uccb4 \ucc38\uc870 \ud2b9\uc131\uc73c\ub85c \uc778\ud574 \uad00\ub828 \ub370\uc774\ud130\uc640 \ud568\uaed8 \uad6c\uc870\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucffc\ub9ac\ud558\ub294 \uac83\uc740 \ud2b9\ud788 \uc131\ub2a5 \uad00\uc810\uc5d0\uc11c RDBMS\uc5d0 \uc5b4\ub824\uc6b4 \uacfc\uc81c\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uae30\uc874 RDBMS\uac00 \uacc4\uce35\ud615 \ucffc\ub9ac\ub97c \ucc98\ub9ac\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc124\uba85\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc774\ub97c \ucc98\ub9ac\ud574\uc57c \ud558\ub294 \uacfc\uc81c\uc640 \uc774 \ubb38\uc81c\ub97c Couchbase N1QL\uacfc Couchbase GSI\uc5d0\uc11c \uc5b4\ub5bb\uac8c \uc720\uc0ac\ud558\uac8c \ud574\uacb0\ud560 \uc218 \uc788\ub294\uc9c0\uc5d0 \ub300\ud574 \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<h2>\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uacc4\uce35 \uad6c\uc870<\/h2>\n<p>\uacc4\uce35 \uad6c\uc870\ub85c \uc815\ubcf4\ub97c \uc218\uc9d1\ud558\ub294 \uc8fc\ub41c \uc774\uc720\ub294 \uc815\ubcf4\uc5d0 \ub300\ud55c \uc774\ud574\ub97c \ub192\uc774\uae30 \uc704\ud574\uc11c\uc785\ub2c8\ub2e4. \ud68c\uc0ac \ubcf4\uace0 \uad6c\uc870\ub294 \uc870\uc9c1 \uad00\ub9ac \ubc29\uc2dd\uc5d0 \ub3c4\uc6c0\uc774 \ub420 \ubfd0\ub9cc \uc544\ub2c8\ub77c \uac01 \uadf8\ub8f9\uc758 \ud6a8\uc728\uc131\uc744 \uce21\uc815\ud558\uace0 \ucd5c\uc801\ud654\ud560 \uc218 \uc788\ub294 \uad6c\uc870\ub97c \uc81c\uacf5\ud558\uae30 \uc704\ud574 \uace0\uc548\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub300\uaddc\ubaa8 \uc870\uc9c1\uc5d0\uc11c \uc601\uc5c5 \uc131\uacfc\ub294 \uc885\uc885 \uac1c\uc778 \uc218\uc900\ubfd0\ub9cc \uc544\ub2c8\ub77c \uc601\uc5c5\ud300 \uc218\uc900\uc5d0\uc11c\ub3c4 \ud3c9\uac00\ub429\ub2c8\ub2e4. \uc989, \uae30\uc5c5\uc740 \ube44\uc988\ub2c8\uc2a4 \uc131\uacfc\ub97c \ub354 \uc798 \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \uacc4\uce35\uc801 \uad6c\uc870\ub85c \uc815\ubcf4\ub97c \uc815\ub9ac\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ubaa9\ud45c\ub97c \ub2ec\uc131\ud558\uae30 \uc704\ud574\uc11c\ub294 \uacc4\uce35\uc801 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucffc\ub9ac\ud560 \uc218 \uc788\ub294 \uc218\ub2e8\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<h3>\ud68c\uc0ac \uacc4\uce35 \uad6c\uc870 \ud45c\ud604<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6402\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-17-at-7.33.47-PM.png\" alt=\"\" width=\"841\" height=\"428\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-17-at-7.33.47-PM.png 1676w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-17-at-7.33.47-PM-300x153.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-17-at-7.33.47-PM-1024x521.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-17-at-7.33.47-PM-768x390.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-17-at-7.33.47-PM-1536x781.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-17-at-7.33.47-PM-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-17-at-7.33.47-PM-1320x671.png 1320w\" sizes=\"auto, (max-width: 841px) 100vw, 841px\" \/><\/p>\n<p>\ub370\uc774\ud130\ubca0\uc774\uc2a4 \ub370\uc774\ud130 \ubaa8\ub378\uc740 \uacc4\uce35 \uad6c\uc870\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucea1\ucc98\ud560 \uc218 \uc788\uc9c0\ub9cc, \uacc4\uce35 \ub370\uc774\ud130\uc640 \uad00\ub828 \uc815\ubcf4\ub97c \ucffc\ub9ac\ud574\uc57c \ud560 \ub54c \uc5b4\ub824\uc6c0\uc774 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>\uc774 \uc694\uad6c \uc0ac\ud56d\uc744 \uace0\ub824\ud558\uc138\uc694:\u00a0<\/strong><\/span><strong>ThomasH-\uc601\uc5c5 \ubd80\uc0ac\uc7a5\uae4c\uc9c0 \ubcf4\uace0\ud558\ub294 \ubaa8\ub4e0 \uc601\uc5c5 \ub2f4\ub2f9\uc790\uc758 \ucd1d \ud310\ub9e4 \uc8fc\ubb38 \uae08\uc561\uc744 \uac00\uc838\uc635\ub2c8\ub2e4.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6397\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM.png\" alt=\"\" width=\"879\" height=\"356\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM.png 2098w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM-300x122.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM-1024x415.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM-768x311.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM-1536x622.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM-2048x830.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-16-at-6.16.28-PM-1320x535.png 1320w\" sizes=\"auto, (max-width: 879px) 100vw, 879px\" \/><\/p>\n<p>\ub370\uc774\ud130 \ubaa8\ub378\uc740 \ube44\uad50\uc801 \ub2e8\uc21c\ud569\ub2c8\ub2e4. \uc601\uc5c5 \uc870\uc9c1\uc758 \uacc4\uce35\uc801 \ud2b9\uc131\uc740 \ubcf4\uace0 \uacc4\uce35 \uad6c\uc870\uc5d0 \ub0b4\uc7ac\ub41c \ub3d9\uc801 \uad6c\uc870\ub97c \uc554\uc2dc\ud569\ub2c8\ub2e4. Region1 \uc9c0\uc5ed\uc744 \ucd1d\uad04\ud558\ub294 AjayW\ub294 \uc601\uc5c5 \ud300\uc6d0\ub4e4\uc744 \uc9c1\uc811 \uad00\ub9ac\ud569\ub2c8\ub2e4. \ubc18\uba74, Region2\uc5d0\uc11c\ub294 Liz L\uc774 \ub450 \uba85\uc758 \ub9e4\ub2c8\uc800\ub97c \uad00\ub9ac\ud558\uace0, \uc774\ub4e4\uc774 \ub2e4\uc2dc \uc601\uc5c5\ud300\uc744 \uad00\ub9ac\ud569\ub2c8\ub2e4. \uc774\ub294 \ub300\ubd80\ubd84\uc758 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub370\uc774\ud130 \uacc4\uce35 \uad6c\uc870\uc5d0\uc11c \uc77c\ubc18\uc801\uc785\ub2c8\ub2e4.<\/p>\n<h4>RDMBS \uc811\uadfc \ubc29\uc2dd<\/h4>\n<p>\uacc4\uce35\ud615 \ub370\uc774\ud130\ub97c \ucffc\ub9ac\ud558\uae30 \uc704\ud574 Oracle \ubc0f SQLSever\uc640 \uac19\uc740 \uae30\uc874 RDBMS\ub294 \ub2e8\uc77c \ucffc\ub9ac\uac00 \uacc4\uce35\ud615 \uc9c1\uc6d0 \uad6c\uc870\ub97c \uc7ac\uadc0\uc801\uc73c\ub85c \ud6a1\ub2e8\ud560 \uc218 \uc788\ub3c4\ub85d CONNECT BY \/ START WITH \uad6c\ubb38\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:tsql decode:true\" title=\"RDBMS - ThomasH-Sales VP\uae4c\uc9c0 \ubcf4\uace0\ud558\ub294 \uba64\ubc84\uac00 \uc0dd\uc131\ud55c \ud310\ub9e4 \uc8fc\ubb38\">Query: Sales orders generated by members who report up to ThomasH-Sales VP&lt;\/strong&gt;&lt;\/span&gt;\r\n\r\nSELECT e.EmpID, e.Name, e.ManagerID, sum(o.orderVal)\r\n   FROM employee e\r\n   INNER JOIN sales_order o ON o.EmpID = o.EmpId\r\n   START WITH EmpID = 101\r\n   CONNECT BY PRIOR EmpID = ManagerID\r\n   GROUP BY  e.EmpID, e.Name, e.ManagerID;\r\n\r\n<\/pre>\n<p>\uc704\uc758 \ucffc\ub9ac\ub294 \uac04\ub2e8\ud574 \ubcf4\uc774\uc9c0\ub9cc, CONNECT BY \uad6c\ud604\uc758 \uc7ac\uadc0\uc801 \ud2b9\uc131\uc73c\ub85c \uc778\ud574 \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud558\uba74 \ucffc\ub9ac \uc131\ub2a5\uc744 \uac1c\uc120\ud558\uae30 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc774\uc720\ub85c \uc774 \uae30\ubc95\uc740 \ub300\ub7c9\uc758 \ub370\uc774\ud130\uac00 \uc788\ub294 \uc2dc\uc2a4\ud15c\uc758 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc5d0\uc11c\ub294 \ub110\ub9ac \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub300\uc2e0, \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ubcf4\ub2e4 \uc608\uce21 \uac00\ub2a5\ud55c \ucffc\ub9ac \uc131\ub2a5\uc744 \uc704\ud574 \ubbf8\ub9ac \ud3c9\ud0c4\ud654\ub41c \uac1d\uccb4 \uad6c\uc870\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ud3c9\ud0c4\ud654\ub41c \uacc4\uce35 \uad6c\uc870 \uae30\ubc95\uc740 \uc544\ub798\uc758 Couchbase N1QL \uc139\uc158\uc5d0 \uc124\uba85\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 N1QL<\/h4>\n<p>\ucd5c\uc0c1\uc758 \ucffc\ub9ac \uc131\ub2a5\uc744 \uc5bb\uc73c\ub824\uba74 N1QL \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ud3c9\ud0c4\ud654\ub41c \uacc4\uce35 \uad6c\uc870\ub97c \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774 \uc811\uadfc \ubc29\uc2dd\uc740 \ub354 \uc608\uce21 \uac00\ub2a5\ud55c \uc131\ub2a5\uc744 \uc81c\uacf5\ud560 \ubfd0\ub9cc \uc544\ub2c8\ub77c Couchbase GSI\ub97c \ub354 \uc798 \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc740 \uc9c1\uc6d0 \uac1c\uccb4\uc640 \uac19\uc740 \uc790\uccb4 \ucc38\uc870 \uacc4\uce35 \uad6c\uc870\uc758 \ud50c\ub7ab\ud654 \ubcc0\ud658\uc758 \uc608\ub97c \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \uc544\ub798\uc5d0 \uacc4\uce35 \uad6c\uc870\ub97c \ud3c9\ud0c4\ud654\ud558\ub294 \ub370 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 Python \ucf54\ub4dc \uc2a4\ub2c8\ud3ab\ub3c4 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.  \uc774 \ucf54\ub4dc\uc758 <strong><em>\ud50c\ub7ab\ud654_\uacc4\uce35<\/em><\/strong> \ud568\uc218\ub294 \uc790\uccb4 \ucc38\uc870\ud558\ub294 \uacc4\uce35\uc801 JSON \uac1d\uccb4\ub97c \uac00\uc838\uc640 \ub3d9\uc77c\ud55c \ud0a4 \uacf5\uac04\uc5d0 \ub2e4\ub978 \uc720\ud615 \uac12\uc744 \uac00\uc9c4 \ub450 \uac1c\uc758 \uc0c8 \uac1d\uccb4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6420\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png\" alt=\"\" width=\"948\" height=\"416\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png 1774w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM-300x132.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM-1024x449.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM-768x337.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM-1536x674.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM-1320x579.png 1320w\" sizes=\"auto, (max-width: 948px) 100vw, 948px\" \/><\/p>\n<ul>\n<li>\uadf8\ub9ac\uace0 <em>object_hier<\/em> \uad6c\uc870\ub294 \uac01 \uc218\uc900\ubcc4\ub85c \ucffc\ub9ac \uacb0\uacfc\ub97c \ub864\uc5c5\ud560 \uc218 \uc788\ub294 \uc9d1\uacc4\ub41c BI \ucffc\ub9ac\uc640 \ud568\uaed8 \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/li>\n<li>\uadf8\ub9ac\uace0 <em>object_hier_level<\/em> \uad6c\uc870\ub294 \ud2b9\uc815 \ub178\ub4dc\uc758 \ubaa8\ub4e0 \ud558\uc704 \uac1c\uccb4\ub97c \ubc18\ud658\ud558\ub294 CONNECT BY\/START WITH \uc808\uacfc \ub3d9\uc77c\ud55c \uacb0\uacfc\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\uac83\uc774 \ubc14\ub85c \ucffc\ub9ac \uc194\ub8e8\uc158\uc744 \uc81c\uacf5\ud558\uae30 \uc704\ud574 N1QL \ucffc\ub9ac\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uac1d\uccb4\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\" title=\"\ucffc\ub9ac ThomasH-Sales VP\uae4c\uc9c0 \ubcf4\uace0\ud558\ub294 \uba64\ubc84\uac00 \uc0dd\uc131\ud55c \ud310\ub9e4 \uc8fc\ubb38 SELECT e.EmpID, e.Name, e.ManagerID, sum(o.orderVal) FROM employee e INNER JOIN sales_order o ON o.EmpID = o.EmpId START WITH EmpID = 101 CONNECT BY PRIOR EmpID = ManagerID GROUP BY e.EmpID, e.Name, e.ManagerID;\">N1QL Query: Sales orders generated by members who report up to ThomasH-Sales VP\r\n\r\n\r\nSELECT e.id,sum(a.value)\r\nFROM crm a\r\nINNER JOIN (\r\n      SELECT uhl.id FROM crm uhl WHERE uhl.type ='_employee_hier_level'\r\n     AND uhl.parent='101') e USE HASH(probe) ON a.owner = e.id\r\nWHERE a.type='sales_order'\r\nGROUP BY e.id<\/pre>\n<p>\ucd94\ucc9c GS \uc9c0\uc218:<\/p>\n<pre class=\"lang:default decode:true\">CREATE INDEX `crm_employee_hier_level` ON `crm`(`parent`) WHERE (`type` = \"_employee_hier_level\")<\/pre>\n<p>\ucc38\uace0:<\/p>\n<ol>\n<li>\uae30\ubcf8 \ucffc\ub9ac\ub294 \ubaa8\ub4e0 \ud310\ub9e4 \uc8fc\ubb38\uc744 \uac80\uc0c9\ud569\ub2c8\ub2e4. <code>crm<\/code>\u00a0\uc720\ud615 \uac12\uc774 'salesorder'\uc778 \ubc84\ud0b7<\/li>\n<li>\uc774 \ucffc\ub9ac\ub294 \uc0ac\uc6a9\uc790101\uc5d0 \ubcf4\uace0\ud558\ub294 \ubaa8\ub4e0 \uc9c1\uc6d0 ID, \uc989 ThomasH-SalesVP\ub97c \uac80\uc0c9\ud558\ub294 \ub2e4\ub978 \ucffc\ub9ac(N1QL 6.5 \uae30\ub2a5)\uc640 \ud574\uc2dc \uc870\uc778(HASH JOIN)\uc744 \uc218\ud589\ud569\ub2c8\ub2e4.<\/li>\n<li>\ucd94\uac00 \ucee4\ubc84\ub9c1 \uc778\ub371\uc2a4\ub3c4 \ucffc\ub9ac \uc131\ub2a5\uc744 \ud5a5\uc0c1\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\ucffc\ub9ac\ub294 \ud45c\ud604\uc2dd \ubc0f \ud558\uc704 \ucffc\ub9ac \uc6a9\uc5b4\uc5d0 \ub300\ud55c N1QL 6.5 ANSI JOIN \uc9c0\uc6d0\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<pre class=\"font:consolas font-size:10 lang:python decode:true\" title=\"\uacc4\uce35 \uad6c\uc870\ub97c \ud3c9\ud3c9\ud558\uac8c \ub9cc\ub4dc\ub294 Python \ucf54\ub4dc \uc2a4\ub2c8\ud3ab\"># Python code to flatten a JSON document in Couchbase bucket\r\nfrom couchbase.cluster import Cluster\r\nfrom couchbase.cluster import PasswordAuthenticator\r\nfrom couchbase.exceptions import NotFoundError\r\nfrom couchbase.bucket import Bucket\r\nfrom couchbase.n1ql import N1QLQuery\r\n\r\ndef flatten_hierarchy(cb,bucketname,src_doc_type,num_hier_level,node_id_col, parent_id_col):\r\n# Example: flatten_hierarchy(cb,args.bucket,'user',4,'id','managerid')\r\n# cb - couchbase bucket handle\r\n# bucketname - name of the bucket for the source and target documents \r\n# src_doc_type - the type value of the source document\r\n# num_hier_level - specifies the number of levels that are needed. Should be the max depth of the hierarchy\r\n# node_id - the field name in the document for the key node id\r\n# parent_node_id - the parent field \r\n#\r\n    gen_doc_type = '_'+src_doc_type+'_hier'\r\n    if (num_hier_level &gt; 1):\r\n        qstr_ins = 'INSERT into '+bucketname+' (KEY UUID(), VALUE ndoc) '\r\n        qstr_sel = 'SELECT { \"type\":\"'+gen_doc_type+'\"'     \r\n        for i in range(1,num_hier_level+1):\r\n            qstr_sel += ',\"id'+str(i)+'\":l'+str(i)+'.'+node_id_col\r\n        qstr_sel += '} ndoc'     \r\n        qstr_sel_one =  ' SELECT '+node_id_col+','+parent_id_col+' FROM '+bucketname+' WHERE type=\"'+src_doc_type+'\"'\r\n        for i in range(1,num_hier_level+1):\r\n            if (i==1):\r\n                qstr_sel += ' FROM ('+qstr_sel_one+') l'+str(i)\r\n            else:\r\n                qstr_sel += ' LEFT OUTER JOIN ('+qstr_sel_one\r\n                qstr_sel += ') l'+str(i)+' ON l'+str(i-1)+'.'+parent_id_col+' = l'+str(i)+'.'+node_id_col\r\n        try:\r\n            #q = N1QLQuery(qstring)\r\n            rows = cb.n1ql_query(qstr_ins+qstr_sel).execute()\r\n        except Exception as e:\r\n                print(\"query error\",e)\r\n        # generate connect by\r\n\r\n    if (num_hier_level &gt; 1):\r\n        qstr_ins = 'INSERT into '+bucketname+' (KEY UUID(), VALUE ndoc) '\r\n        qstr_sel = 'SELECT { \"id\":ll.child,\"parent\":ll.parent,\"level\":ll.level ,\"type\":\"'+gen_doc_type+'_level\" } ndoc FROM ('\r\n        for i in range(1,num_hier_level):\r\n            if (i&gt;1):\r\n                qstr_sel += 'UNION ALL '\r\n            qstr_sel += 'SELECT id'+str(i+1)+' parent, id1 child,'+str(i)+' level FROM '+bucketname+' WHERE type=\"'+gen_doc_type+'\" and id'+str(i+1)+' IS NOT NULL '\r\n        qstr_sel += ') ll'\r\n        try:\r\n            rows = cb.n1ql_query(qstr_ins+qstr_sel).execute()\r\n        except Exception as e:\r\n            print(\"query error\",e)\r\n    return<\/pre>\n<h4><b>\ub9ac\uc18c\uc2a4<\/b><\/h4>\n<ul>\n<li><i>\ub2e4\uc6b4\ub85c\ub4dc<\/i>:\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/downloads\/?family=server&amp;product=couchbase-server-developer\">Couchbase Server 6.5 \ub2e4\uc6b4\ub85c\ub4dc<\/a><i><\/i><\/li>\n<li><i>\ubb38\uc11c<\/i>:\u00a0<a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/introduction\/whats-new.html\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 6.5\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5<\/a><i><\/i><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/tag\/6-5\/\"><b>6.5 \ube14\ub85c\uadf8 \ubaa8\ub450 \ubcf4\uae30<\/b><\/a><\/li>\n<\/ul>\n<p>6.5\uc758 \uae30\ub2a5\uc774 \ub9c8\uc74c\uc5d0 \ub4dc\uc168\ub294\uc9c0, \uc55e\uc73c\ub85c \ube44\uc988\ub2c8\uc2a4\uc5d0 \uc5b4\ub5a4 \ub3c4\uc6c0\uc774 \ub420\uc9c0 \uc5ec\ub7ec\ubd84\uc758 \uc758\uacac\uc744 \ub4e3\uace0 \uc2f6\uc2b5\ub2c8\ub2e4. \ub313\uae00\uc744 \ud1b5\ud574 \uc758\uacac\uc744 \uacf5\uc720\ud574 \uc8fc\uc2dc\uac70\ub098\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/\">\ud3ec\ub7fc<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>A data construct that often appears in business application is the hierarchical data structure. Hierarchy captures the parent-child relationship often between the same object. For instance a company structure captures the reporting line between employees. Business organization captures the relationship [&hellip;]<\/p>","protected":false},"author":26326,"featured_media":6420,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1815,1819,1812],"tags":[2378],"ppma_author":[8919],"class_list":["post-6386","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-data-modeling","category-n1ql-query","tag-6-5"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>N1QL query with Self Referencing Hierarchy - The Couchbase Blog<\/title>\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\/n1ql-query-with-self-referencing-hierarchy\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"N1QL query with Self Referencing Hierarchy\" \/>\n<meta property=\"og:description\" content=\"A data construct that often appears in business application is the hierarchical data structure. Hierarchy captures the parent-child relationship often between the same object. For instance a company structure captures the reporting line between employees. Business organization captures the relationship [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/n1ql-query-with-self-referencing-hierarchy\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-18T03:35:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:22:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1774\" \/>\n\t<meta property=\"og:image:height\" content=\"778\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Binh Le\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Binh Le\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/\"},\"author\":{\"name\":\"Binh Le\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63\"},\"headline\":\"N1QL query with Self Referencing Hierarchy\",\"datePublished\":\"2019-02-18T03:35:55+00:00\",\"dateModified\":\"2025-06-14T00:22:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/\"},\"wordCount\":717,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png\",\"keywords\":[\"6.5\"],\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Data Modeling\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/\",\"name\":\"N1QL query with Self Referencing Hierarchy - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png\",\"datePublished\":\"2019-02-18T03:35:55+00:00\",\"dateModified\":\"2025-06-14T00:22:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png\",\"width\":1774,\"height\":778},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"N1QL query with Self Referencing Hierarchy\"}]},{\"@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\/f89064928e262c71eb43bee996c48c63\",\"name\":\"Binh Le\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5b68c37e30928a9d7b2c8470b1a303b7\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g\",\"caption\":\"Binh Le\"},\"description\":\"Binh Le is a Principal Product Manager for Couchbase Query service. Prior to Couchbase, he worked at Oracle and led the product management team for Sales Cloud Analytics and CRM OnDemand. Binh holds a Bachelor's Degree in Computer Science from the University of Brighton, UK.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/binh-le-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"N1QL query with Self Referencing Hierarchy - The Couchbase Blog","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\/n1ql-query-with-self-referencing-hierarchy\/","og_locale":"ko_KR","og_type":"article","og_title":"N1QL query with Self Referencing Hierarchy","og_description":"A data construct that often appears in business application is the hierarchical data structure. Hierarchy captures the parent-child relationship often between the same object. For instance a company structure captures the reporting line between employees. Business organization captures the relationship [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/n1ql-query-with-self-referencing-hierarchy\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-02-18T03:35:55+00:00","article_modified_time":"2025-06-14T00:22:10+00:00","og_image":[{"width":1774,"height":778,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png","type":"image\/png"}],"author":"Binh Le","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Binh Le","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/"},"author":{"name":"Binh Le","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63"},"headline":"N1QL query with Self Referencing Hierarchy","datePublished":"2019-02-18T03:35:55+00:00","dateModified":"2025-06-14T00:22:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/"},"wordCount":717,"commentCount":5,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png","keywords":["6.5"],"articleSection":["Application Design","Best Practices and Tutorials","Data Modeling","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/","url":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/","name":"N1QL query with Self Referencing Hierarchy - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png","datePublished":"2019-02-18T03:35:55+00:00","dateModified":"2025-06-14T00:22:10+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/02\/Screen-Shot-2019-02-20-at-8.59.12-AM.png","width":1774,"height":778},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/n1ql-query-with-self-referencing-hierarchy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"N1QL query with Self Referencing Hierarchy"}]},{"@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\/f89064928e262c71eb43bee996c48c63","name":"Binh Le","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5b68c37e30928a9d7b2c8470b1a303b7","url":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","caption":"Binh Le"},"description":"Binh Le is a Principal Product Manager for Couchbase Query service. Prior to Couchbase, he worked at Oracle and led the product management team for Sales Cloud Analytics and CRM OnDemand. Binh holds a Bachelor's Degree in Computer Science from the University of Brighton, UK.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/binh-le-2\/"}]}},"authors":[{"term_id":8919,"user_id":26326,"is_guest":0,"slug":"binh-le-2","display_name":"Binh Le","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","author_category":"","last_name":"Le","first_name":"Binh","job_title":"","user_url":"","description":"Binh Le\ub294 Couchbase \ucffc\ub9ac \uc11c\ube44\uc2a4\uc758 \uc218\uc11d \uc81c\ud488 \uad00\ub9ac\uc790\uc785\ub2c8\ub2e4. Couchbase\uc5d0 \uc785\uc0ac\ud558\uae30 \uc804\uc5d0\ub294 Oracle\uc5d0\uc11c \uadfc\ubb34\ud558\uba70 Sales Cloud Analytics \ubc0f CRM OnDemand\uc758 \uc81c\ud488 \uad00\ub9ac \ud300\uc744 \uc774\ub04c\uc5c8\uc2b5\ub2c8\ub2e4. \uc601\uad6d \ube0c\ub77c\uc774\ud2bc \ub300\ud559\uad50\uc5d0\uc11c \ucef4\ud4e8\ud130 \uacf5\ud559 \ud559\uc0ac \ud559\uc704\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/6386","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\/26326"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=6386"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/6386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/6420"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=6386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=6386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=6386"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=6386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}