MongoDB Documentation, Release 3.0.4 Use $hint to Select a Particular Index Use the Increment Operator to Perform Operations Server-Side Design Notes Schema Considerations In most cases the query optimizer (page 68) selects the optimal index for a specific operation; however, you can force MongoDB to use a specific index using the hint() method. Use hint() to support performance testing, or on some queries where you must select a field or field included in several indexes. Use MongoDB’s $inc operator to increment or decrement values in documents. The operator increments the value of the field on the server side, as an alternative to selecting a document, making simple modifications in the client and then writing the entire document to the server. The $inc operator can also help avoid race conditions, which would result when two application instances queried for a document, manually incremented a field, and saved the entire document back at the same time. This page details features of MongoDB that may be important to keep in mind when developing applications. Dynamic Schema Data in MongoDB has a dynamic schema . Collections do not enforce document structure. This facilitates iterative development and polymorphism. Nevertheless, collections often hold documents with highly ho- mogeneous structures. See Data Modeling Concepts (page 145) for more information. Some operational considerations include: Avoid importing unmodified data directly from a relational database. In general, you will want to “roll up” certain data into richer documents that take advantage of MongoDB’s support for embedded documents and nested arrays. Case Sensitive Strings MongoDB strings are case sensitive. So a search for "joe" will not find "Joe" . Consider: Type Sensitive Fields MongoDB data is stored in the BSON format, a binary encoded serialization of JSON-like documents. BSON encodes additional type information. See bsonspec.org 83 for more information. Consider the following document which has a field x with the string value "123" : { x : "123" } Then the following query which looks for a number value 123 will not return that document: $^{83}$http://bsonspec.org/#/specification Chapter 5. Administration 218 • storing data in a normalized case format, or • using regular expressions ending with the i option, and/or • using $toLower or $toUpper in the aggregation framework (page 439). • the exact set of collections to be used; • the indexes to be used: with the exception of the _id index, all indexes must be created explicitly; • shard key declarations: choosing a good shard key is very important as the shard key cannot be changed once set.