{"id":203,"date":"2017-05-01T06:53:28","date_gmt":"2017-05-01T13:53:28","guid":{"rendered":"http:\/\/www.kenwalger.com\/blog\/?p=203"},"modified":"2017-06-11T11:03:20","modified_gmt":"2017-06-11T18:03:20","slug":"new-version-new-features","status":"publish","type":"post","link":"https:\/\/www.kenwalger.com\/blog\/nosql\/new-version-new-features\/","title":{"rendered":"New version&#8230; new features."},"content":{"rendered":"<p>If you get involved in the software development industry, or heck, even just use a computer, you know that vendors pump out new versions of their software very frequently. It often seems like just when you get a handle on version 10, version 11 is introduced. Making the learning curve start all over. I&#8217;m so stubborn that I&#8217;m personally still on Microsoft Office 2003&#8230; I know, don&#8217;t laugh.<\/p>\n<p>Sometimes new versions offer nothing but bug fixes and additional headaches. Other times new software versions come packed with a wide assortment of immediately useful new features. Such is the case of the latest release of <a href=\"http:\/\/www.mongodb.com\">MongoDB<\/a>, 3.4, released in December of 2016.<\/p>\n<p>I&#8217;d like to take a look at some of the included new features in this latest version for developers. There are several new features more suited for a discussion from an administrator standpoint, such as <a href=\"https:\/\/docs.mongodb.com\/manual\/tutorial\/manage-shard-zone\/\">zones<\/a>, <a href=\"https:\/\/docs.mongodb.com\/manual\/core\/sharding-balancer-administration\/\">elastic scalability<\/a> enhancements, <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/read-concern\/\">consistency control<\/a>, and improvements to <a href=\"https:\/\/docs.mongodb.com\/manual\/release-notes\/3.4\/#security-enhancement\">security<\/a> for database access. For this post though, let&#8217;s stick to a discussion about some of the development-oriented features.<\/p>\n<p><a href=\"https:\/\/www.mongodb.com\/download-center?jmp=nav#community\">Version 3.4<\/a> provides some excellent improvements for data processing and aggregation, international language considerations, and third-party application connection tools.<\/p>\n<h3>$graphLookup<\/h3>\n<p>They have brought the ability to do graph processing directly into MongoDB with the new <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/aggregation\/graphLookup\/\">$graphLookup<\/a> aggregation stage. This new stage allows MongoDB to recursively lookup documents based on a specific relationship to a starting document. There are, of course, many uses for this feature alone. Such as graphing social networks, business entities, genealogical family trees, etc. One can now utilize the power of a graph database natively within MongoDB. For those that have used a separate graph database, like <a href=\"https:\/\/neo4j.com\/\">Neo4j<\/a>, they can now process their data using a single MongoDB datastore and get graphs along with other business critical data. With the rise of applications that are connected globally, being able to graph relationships is becoming a larger and larger need.<\/p>\n<p>Additionally, it is becoming more and more critical to be able to offer localized language considerations to your application. My family just got done hosting an exchange student from Germany. She let us know that German phone books and German dictionaries sort words differently. Well, it would be great to be able to have the ability to account for these language rules and nuances. MongoDB 3.4 has support for over 100 different languages and locales. One can specify a <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/collation\/\">collation<\/a> based on <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/glossary\/#term-collection\">collection<\/a>, <a href=\"https:\/\/docs.mongodb.com\/manual\/indexes\/\">index<\/a>, or <a href=\"https:\/\/docs.mongodb.com\/manual\/core\/views\/\">view<\/a>. Further, several operations support collation as well, such as <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/method\/db.collection.find\/\">find<\/a>, <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/method\/db.collection.aggregate\/\">aggregate<\/a>, and <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/method\/db.collection.update\/\">update<\/a>.<\/p>\n<h3>Big Data Tools<\/h3>\n<p>A couple of additional things which personally got me excited were some updates to the <a href=\"https:\/\/www.mongodb.com\/products\/bi-connector\">MongoDB Connector for BI<\/a> and the <a href=\"https:\/\/docs.mongodb.com\/spark-connector\/current\/\">MongoDB Connector for Apache Spark<\/a>. As someone who enjoys being able to visualize data, the Connector for BI is very exciting. The performance improvements have been made by moving more query execution into MongoDB processes to reduce latency and bandwidth. Other improvements around the Connector for BI include a simplification of the <a href=\"https:\/\/www.mongodb.com\/download-center#bi-connector\">installation<\/a>, configuration process, authorization, and support for Windows.<\/p>\n<p>The Spark Connector has received some nice attention as well with updates to support the latest <a href=\"http:\/\/spark.apache.org\/\">Spark 2.0 release<\/a>. For those familiar with Spark, the connector allows us access to Spark&#8217;s libraries for Scala, Java, Python, and R and brings MongoDB data in as DataFrames and Datasets. This allows us to utilize data already in MongoDB to be analyzed through Spark&#8217;s tools for machine learning, graph, streaming, and SQL APIs and provide shorter turnaround times for data scientists and engineers.<\/p>\n<h3>Wrap Up<\/h3>\n<p>There are several other features new in 3.4 as well, such as <a href=\"https:\/\/docs.mongodb.com\/master\/release-notes\/3.4\/#new-aggregation-stages-for-faceted-search\">faceted navigation<\/a>, enhancements to the <a href=\"https:\/\/docs.mongodb.com\/master\/release-notes\/3.4\/#aggregation\">aggregation pipeline<\/a>, and a support for the <a href=\"https:\/\/docs.mongodb.com\/master\/release-notes\/3.4\/#decimal-type\">decimal data type<\/a>. In previous posts, I have mentioned some of the advancements to <a href=\"http:\/\/www.kenwalger.com\/blog\/nosql\/mongodb\/mongodb-compass-an-overview\/\">MongoDB Compass<\/a> and their DBaaS offering <a href=\"http:\/\/www.kenwalger.com\/blog\/nosql\/mongodb\/mongodb-atlas\/\">Atlas<\/a>. There are a lot of exciting things in all of these new and\/or enhanced features that make version 3.4 worth examining further.<\/p>\n<p>I am excited to continue to examine the possibilities especially around $graphLookup, multi-language collations, and the various connectors. I know that not every organization is in a place and able to upgrade to 3.4 today, but it is definitely worth a look. You can download it in their download center <a href=\"https:\/\/www.mongodb.com\/download-center?jmp=nav#community\">here<\/a>.<\/p>\n<p><em>Follow me on Twitter <a href=\"https:\/\/www.twitter.com\/kenwalger\">@kenwalger<\/a> to get the latest updates on my postings.<\/em><\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-facebook nolightbox\" data-provider=\"facebook\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Facebook\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F203&#038;t=New%20version%E2%80%A6%20new%20features.&#038;s=100&#038;p&#091;url&#093;=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F203&#038;p&#091;images&#093;&#091;0&#093;=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-content%2Fuploads%2F2017%2F05%2Fmongodb-34-e1493252177847.png&#038;p&#091;title&#093;=New%20version%E2%80%A6%20new%20features.\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"Facebook\" title=\"Share on Facebook\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/facebook.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F203&#038;text=Hey%20check%20this%20out\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-reddit nolightbox\" data-provider=\"reddit\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Reddit\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F203&#038;title=New%20version%E2%80%A6%20new%20features.\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"reddit\" title=\"Share on Reddit\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/reddit.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F203&#038;title=New%20version%E2%80%A6%20new%20features.\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=New%20version%E2%80%A6%20new%20features.&#038;body=Hey%20check%20this%20out:%20https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F203\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>If you get involved in the software development industry, or heck, even just use a computer, you know that vendors pump out new versions of their software very frequently. It often seems like just when you get a handle on version 10, version 11 is introduced. Making the learning curve start all over. I&#8217;m so &hellip; <a href=\"https:\/\/www.kenwalger.com\/blog\/nosql\/new-version-new-features\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;New version&#8230; new features.&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":211,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pmpro_default_level":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[4,3],"tags":[33,34],"yst_prominent_words":[342,344,337,330,99,90,332,341,345,333,87,335,331,336,338,340,343,339,334,346],"class_list":["post-203","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mongodb","category-nosql","tag-spark","tag-version-3-4","pmpro-has-access"],"jetpack_featured_media_url":"https:\/\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/05\/mongodb-34-e1493252177847.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8lx70-3h","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/comments?post=203"}],"version-history":[{"count":7,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/203\/revisions"}],"predecessor-version":[{"id":370,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/203\/revisions\/370"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/media\/211"}],"wp:attachment":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/media?parent=203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/categories?post=203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/tags?post=203"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}