What we learned at MongoDB world

Jul 3, 2017

Guy Harrison

Mike (@code__with__MikeH) and I represented dbKoda at the annual MongoDB World conference in Chicago in June. Here’s a wrap up of what we learned:

MongoDB adoption

MongoDB adoption continues to grow strongly according to multiple reliable metrics. For instance, activity on stackoverflow.com continues to outpace other NoSQL systems while total cumulative downloads have continued to show exponential growth and have reached 30 million total.

The upcoming release of MongoDB implements incremental but important improvements to the core engine.

Complex Joins

The $lookup in the aggregation framework allows for simple left outer joins to be performed in MongoDB. Enhancement to $lookup now allow the user to nest aggregation clauses within that lookup. This would allow (for instance) to join to a GROUP by – the sort of thing you might do in SQL with an in-line view

JSON Schema

MongoDB added Document validation in 3.2, which allows simple rules to be defined to ensure that documents in a collection meet basic criteria. JSON schema support takes this one step further. JSON Schema allows virtually any condition to be specified so that you can if you want specify the exact shape of a document. Most of the time, we’ll limit these rules to certain “core” attributes but it still helps prevent MongoDB documents being corrupted by bad code.

Charts

MongoDB have put a lot of energy into the commercial Compass tool, a graphical data exploration management tool. The next release of Compass includes charting functions that let you visual data from MongoDB.

Retryable Writes

If there’s a failure of the network or the server during a write operation you might not be sure that the write has completed. In the case of a non-idempotent operation repeating the operation might leave the database in an incorrect state. In the next release of 3.4 you’ll be able to configure retryable writes which will automatically retry in the case of a network outage.

Under the hoods, the retryable writes mechanism takes advantage of more stateful server sessions.

Change Streams

Change streams allow an application to subscribe to changes in a collection. You could use this to implement a queuing system, perform replication or update another collection that contains aggregate or derived data.

Stitch

MongoDB describes Stitch as Backend as a Service. It provides a REST-like interface to MongoDB data query and manipulation and integration with web services. At the demo CTO Elliot Horowitz showed a service that allowed an SMS gateway to perform inserts to MongoDB with just a few lines of code. Stitch doesn’t provide much in the way of complex application logic, so you couldn’t use it in place of application servers like Node.JS, but it could be used to build simple mobile interfaces and web service integrations directly to the database.

Having fun

There were a lot of fun activities at the conference and some fantastic keynotes. My two favourite “fun” keynotes were:

Summary

MongoDB did not announce anything truly revolutionary at this conference. But they continue to build out the scalability and capabilities of the database. Customers at the conference showcased some very serious and flexible applications built with MongoDB. MongoDB’s lead in the NoSQL space continues unabated.

Privacy Policy

Privacy Policy

dbKoda.com and dbKoda Application

This privacy policy relates the websites dbKoda.com, dbKoda.io and Southbanksoftware.com, and to the product “dbKoda” which is made licensed by Southbank Software under the Affero General Public License (AGPL) license.

This privacy policy has been compiled to better serve those who are concerned with how their 'Personally Identifiable Information' (PII) is being used online. PII, as described in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information on our website and within the dbKoda product.

Contacting us

If there are any questions regarding this privacy policy, you may contact us using the information below.

Questions?

What personal information do we collect from the people that visit our blog, website or app?

When ordering or registering on our site, as appropriate, you may be asked to enter your name, email address or other details to help you with your experience.

When do we collect information?

We collect information from you when you Open a Support Ticket or enter information on our site.

How do we use your information?

We may use the information we collect from you when you register or use certain other site features in the following ways:

To allow us to better service you in responding to your customer service requests.

To send periodic emails regarding your download of dbKoda.

To follow up with you after correspondence.

How do we protect your information?

(We only provide articles and information. We never ask for credit card numbers. We use regular Malware Scanning. We do not use an SSL certificate. We only provide articles and information. We never ask for personal or private information like names, email addresses, or credit card numbers.)

Do we use 'cookies'?

Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow) that enables the site's or service provider's systems to recognize your browser and capture and remember certain information. For instance, we use cookies to help us remember and process the items in your shopping cart. They are also used to help us understand your preferences based on previous or current site activity, which enables us to provide you with improved services. We also use cookies to help us compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future.

We use cookies to:

Understand and save user's preferences for future visits.

Compile aggregate data about site traffic and site interactions in order to offer better site experiences and tools in the future. We may also use trusted third-party services such as Google Analytics that track this information on our behalf.

You can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies. You do this through your browser settings. Since browser is a little different, look at your browser's Help Menu to learn the correct way to modify your cookies.

If you turn cookies off, the website will behave normally but might not “remember” your choices when selecting options.

Third-party disclosure

We do not sell, trade, or otherwise transfer to outside parties your Personally Identifiable Information.

Third-party links

We do not include or offer third-party products or services on our website.

Google

Google's advertising requirements can be summed up by Google's Advertising Principles. They are put in place to provide a positive experience for users.

Google, as a third-party vendor, uses cookies to serve ads on our site. Google's use of the DART cookie enables it to serve ads to our users based on previous visits to our site and other sites on the Internet. Users may opt-out of the use of the DART cookie by visiting the Google Ad and Content Network privacy policy.

We have implemented the following:

We, along with third-party vendors such as Google use first-party cookies (such as the Google Analytics cookies) and third-party cookies (such as the DoubleClick cookie) or other third-party identifiers together to compile data regarding user interactions with ad impressions and other ad service functions as they relate to our website.

Opting out:

Users can set preferences for how Google advertises to you using the Google Ad Settings page. Alternatively, you can opt out by visiting the Network Advertising Initiative Opt Out page or by using the Google Analytics Opt Out Browser add on.

COPPA (Children Online Privacy Protection Act)

When it comes to the collection of personal information from children under the age of 13 years old, the Children's Online Privacy Protection Act (COPPA) puts parents in control. The Federal Trade Commission, United States' consumer protection agency, enforces the COPPA Rule, which spells out what operators of websites and online services must do to protect children's privacy and safety online.

We do not specifically market to children under the age of 13 years old.

Fair Information Practices

The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information.

In order to be in line with Fair Information Practices we will take the following responsive action, should a data breach occur:

We will notify you via email within 7 business days.

We also agree to the Individual Redress Principle which requires that individuals have the right to legally pursue enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors.

CAN SPAM Act

The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations.

We collect your email address in order to:

Send information, respond to inquiries, and/or other requests or questions

To be in accordance with CANSPAM, we agree to the following:

Not use false or misleading subjects or email addresses.

Identify the message as an advertisement in some reasonable way.

Include the physical address of our business or site headquarters.

Monitor third-party email marketing services for compliance, if one is used.

Honor opt-out/unsubscribe requests quickly.

Allow users to unsubscribe by using the link at the bottom of each email.

If at any time you would like to unsubscribe from receiving future emails follow the instructions at the bottom of each email and we will promptly remove you from ALL correspondence.

dbKoda product data collections

Southbank Software collects metric to track the installations of dbKoda. We do this to assess the popularity of the product and assess the popularity of product features. If you consent to this program we will transmit these metrics via Google Analytics.

We do not collect any personal information and cannot identify you in any way using this information. The data transmitted is totally anonymous.

We do not collect any information from the MongoDB databases that you might use with dbKoda. We do take note of the number of MongoDB databases you use with dbKoda and whether these databases are part of a replica set or sharded cluster but never transmit any information about the contents, schema of those databases or the database commands that you may issue.

We do collect information about which dbKoda features you use, and how often you use dbKoda.

You may opt out of this program when you launch dbKoda, or at any time afterwards (See our faq).

If you opt out, we send a one time message to our servers recording the decline. We do this so that we can calibrate statistics collected from the entire user population. No personal or identifying information is sent with the decline message. It is used solely to increment a counter of the number of opt-outs.