﻿
{"id":9235,"date":"2018-09-04T09:23:42","date_gmt":"2018-09-04T09:23:42","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=9235"},"modified":"2018-09-04T09:23:42","modified_gmt":"2018-09-04T09:23:42","slug":"mongodb-iliskilendirme-sonucunda-eslesmeyen-verileri-getirme","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/mongodb-iliskilendirme-sonucunda-eslesmeyen-verileri-getirme\/","title":{"rendered":"MongoDB &#8211; \u0130li\u015fkilendirme Sonucunda E\u015fle\u015fmeyen Verileri Getirme"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>\u00d6nceki yaz\u0131lar\u0131mdan <a href=\"http:\/\/www.gencayyildiz.com\/blog\/nosql-mongodb-islevsel-fonksiyonlar-ve-aggregate-operatorleri\/\" rel=\"noopener\" target=\"_blank\">NoSQL \u2013 MongoDB \u0130\u015flevsel Fonksiyonlar ve Aggregate Operat\u00f6rleri<\/a> ba\u015fl\u0131kl\u0131 makalemde &#8220;$lookup&#8221; operat\u00f6r\u00fc ile MongoDB veritaban\u0131nda iki farkl\u0131 collection\u0131n nas\u0131l ili\u015fkilendirildi\u011fini incelemi\u015ftik. Bu i\u00e7eri\u011fimizde ise ili\u015fkilendirme sonucunda e\u015fle\u015fmeyen verilerinde elde edilmesi i\u00e7in ne yap\u0131lmas\u0131 gerekti\u011fini konu\u015faca\u011f\u0131z.<\/p>\n<p>\u0130\u00e7eri\u011fimizi anla\u015f\u0131labilir k\u0131lmak i\u00e7in &#8220;Employee&#8221; ve &#8220;Order&#8221; olmak \u00fczere iki \u00f6rnek collection \u00fczerinden zenginle\u015ftirece\u011fiz.<\/p>\n<table>\n<thead>\n<tr>\n<th>Employee Collection<\/th>\n<th>Order Collection<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme.png\" alt=\"MongoDB - \u0130li\u015fkilendirme Sonucunda E\u015fle\u015fmeyen Verileri Getirme\" width=\"360\" height=\"346\" class=\"aligncenter size-full wp-image-9239\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme.png 360w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-300x288.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><\/td>\n<td><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-1.png\" alt=\"MongoDB - \u0130li\u015fkilendirme Sonucunda E\u015fle\u015fmeyen Verileri Getirme\" width=\"313\" height=\"291\" class=\"aligncenter size-full wp-image-9240\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-1.png 313w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-1-300x279.png 300w\" sizes=\"auto, (max-width: 313px) 100vw, 313px\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Yukar\u0131daki collectionlara g\u00f6z atarsan\u0131z e\u011fer &#8220;Employee&#8221; collection\u0131ndaki &#8220;9&#8221; ve &#8220;10&#8221; idlerine sahip documentlere kar\u015f\u0131l\u0131k &#8220;Order&#8221; collection\u0131nda bir kay\u0131t bulunmamaktad\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nrouter.get(&quot;\/listOrder&quot;, (request, response, next) =&gt;\r\n    employeeModel.aggregate\r\n        (&#x5B;\r\n            {\r\n                $lookup: {\r\n                    from: &quot;order&quot;,\r\n                    localField: &quot;_id&quot;,\r\n                    foreignField: &quot;employeeId&quot;,\r\n                    as: &quot;orderList&quot;\r\n                }\r\n            },\r\n            {\r\n                $unwind: &quot;$orderList&quot;\r\n            },\r\n            {\r\n                $project: {\r\n                    orderNumber: &quot;$orderList.orderNumber&quot;,\r\n                    name: 1,\r\n                    surName: 1\r\n                }\r\n            }\r\n        ])\r\n        .then(data =&gt; response.render(&quot;home&quot;, { data: data }))\r\n        .catch(error =&gt; response.send(&quot;Veriler listelenirken beklenmeyen bir hatayla kar\u015f\u0131la\u015f\u0131ld\u0131.&quot;))\r\n);\r\n<\/pre>\n<p>Dolay\u0131s\u0131yla bu \u015fekilde bir ili\u015fkilendirme sonucu sadece e\u015fle\u015fen kay\u0131tlar\u0131n geldi\u011fini g\u00f6rmekteyiz.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-2.png\" alt=\"MongoDB - \u0130li\u015fkilendirme Sonucunda E\u015fle\u015fmeyen Verileri Getirme\" width=\"491\" height=\"229\" class=\"aligncenter size-full wp-image-9243\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-2.png 491w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-2-300x140.png 300w\" sizes=\"auto, (max-width: 491px) 100vw, 491px\" \/><\/a><\/p>\n<p>E\u011fer ki e\u015fle\u015fmeyen kay\u0131tlar\u0131n gelmesini istyorsak a\u015fa\u011f\u0131daki gibi &#8220;$unwind&#8221; operat\u00f6r\u00fcnde &#8220;preserveNullAndEmptyArrays&#8221; parametresine &#8220;true&#8221; vermeniz gerekmektedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nrouter.get(&quot;\/listOrder&quot;, (request, response, next) =&gt;\r\n    employeeModel.aggregate\r\n        (&#x5B;\r\n            {\r\n                $lookup: {\r\n                    from: &quot;order&quot;,\r\n                    localField: &quot;_id&quot;,\r\n                    foreignField: &quot;employeeId&quot;,\r\n                    as: &quot;orderList&quot;\r\n                }\r\n            },\r\n            {\r\n                $unwind: {\r\n                    path: &quot;$orderList&quot;,\r\n                    preserveNullAndEmptyArrays: true\r\n                }\r\n            },\r\n            {\r\n                $project: {\r\n                    orderNumber: &quot;$orderList.orderNumber&quot;,\r\n                    name: 1,\r\n                    surName: 1\r\n                }\r\n            }\r\n        ])\r\n        .then(data =&gt; response.render(&quot;home&quot;, { data: data }))\r\n        .catch(error =&gt; response.send(&quot;Veriler listelenirken beklenmeyen bir hatayla kar\u015f\u0131la\u015f\u0131ld\u0131.&quot;))\r\n);\r\n<\/pre>\n<p>Bu i\u015flem neticesinde iki collection aras\u0131nda e\u015fle\u015fen e\u015fle\u015fmeyen t\u00fcm kay\u0131tlar\u0131n elde edildi\u011fini g\u00f6rebilmekteyiz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-3.png\" alt=\"MongoDB - \u0130li\u015fkilendirme Sonucunda E\u015fle\u015fmeyen Verileri Getirme\" width=\"479\" height=\"272\" class=\"aligncenter size-full wp-image-9245\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-3.png 479w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/MongoDB-\u0130li\u015fkilendirme-Sonucunda-E\u015fle\u015fmeyen-Verileri-Getirme-3-300x170.png 300w\" sizes=\"auto, (max-width: 479px) 100vw, 479px\" \/><\/a><\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, \u00d6nceki yaz\u0131lar\u0131mdan NoSQL \u2013 MongoDB \u0130\u015flevsel Fonksiyonlar ve Aggregate Operat\u00f6rleri ba\u015fl\u0131kl\u0131 makalemde &#8220;$lookup&#8221; operat\u00f6r\u00fc ile MongoDB veritaban\u0131nda iki farkl\u0131 collection\u0131n nas\u0131l ili\u015fkilendirildi\u011fini incelemi\u015ftik. Bu i\u00e7eri\u011fimizde ise ili\u015fkilendirme sonucunda e\u015fle\u015fmeyen verilerinde elde edilmesi i\u00e7in&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":8971,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2539,2145],"tags":[2597,2574,2147,2596],"class_list":["post-9235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mongodb","category-node-js","tag-lookup","tag-lookup-operatoru","tag-node-js","tag-preservenullandemptyarrays"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=9235"}],"version-history":[{"count":8,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9235\/revisions"}],"predecessor-version":[{"id":9247,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9235\/revisions\/9247"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/8971"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=9235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=9235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=9235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}