MongoDB Documentation, Release 3.0.4 11.1.3 Do MongoDB databases have schemas? 11.1.4 What languages can I use to work with MongoDB? See 11.1.5 Does MongoDB support SQL? See also: 11.1.6 What are typical uses for MongoDB? 11.1.7 Does MongoDB support transactions? See also: MongoDB client drivers exist for all of the most popular programming languages, and many other ones. See the latest list of drivers 2 for details. However, MongoDB does support a rich, ad-hoc query language of its own. No. http://docs.mongodb.org/manual/applications/drivers . http://docs.mongodb.org/manual/reference/operator SQL to MongoDB Mapping Chart (page 131) In practice, it is common for the documents in a collection to have a largely homogeneous structure; however, this is not a requirement. MongoDB’s flexible schemas mean that schema migration and augmentation are very easy in practice, and you will rarely, if ever, need to write scripts that perform “alter table” type operations, which simplifies and facilitates iterative software development with MongoDB. MongoDB uses dynamic schemas. You can create collections without defining the structure, i.e. the fields or the types of their values, of the documents in the collection. You can change the structure of documents simply by adding new fields or deleting existing ones. Documents in a collection need not have an identical set of fields. MongoDB has a general-purpose design, making it appropriate for a large number of use cases. Examples include content management systems, mobile applications, gaming, e-commerce, analytics, archiving, and logging. Do not use MongoDB for systems that require SQL, joins, and multi-object transactions. MongoDB does not support multi-document transactions. However, MongoDB does provide atomic operations on a single document. For more details on MongoDB’s isolation guarantees and behavior under concurrency, see FAQ: Concurrency (page 758). $^{2}$https://docs.mongodb.org/ecosystem/drivers Chapter 11. Frequently Asked Questions 744