MongoDB Documentation, Release 3.0.4 Index keys that are of the BinData type are more efficiently stored in the index if: Note: Most MongoDB driver clients will include the _id field and generate an ObjectId before sending the insert operation to MongoDB; however, if the client sends a document without an _id field, the mongod will add the _id field and generate the ObjectId . MongoDB uses the dot notation to access the elements of an array and to access the fields of an embedded document. To access an element of an array by the zero-based index position, concatenate the array name with the dot ( . ) and zero-based index position, and enclose in quotes: '<array>.<index>' See also $ positional operator for update operations and $ projection operator when array index position is unknown. To access a field of an embedded document with dot-notation , concatenate the embedded document name with the dot ( . ) and the field name, and enclose in quotes: '<embedded document>.<field>' MongoDB does not support joins. In MongoDB some data is denormalized , or stored with related data in documents to remove the need for joins. However, in some cases it makes sense to store related information in separate documents, typically in different collections or databases. MongoDB applications use one of two methods for relating documents: $^{14}$https://api.mongodb.org/ $^{15}$https://www.mongodb.com/blog/post/thinking-documents-part-1?jmp=docs 171 4.4. Data Model Reference 4.4.2 Database References Additional Resources See also: Dot Notation • Generate an auto-incrementing number. See Create an Auto-Incrementing Sequence Field (page 125). • Generate a UUID in your application code. For a more efficient storage of the UUID values in the collection and in the _id index, store the UUID as a value of the BSON BinData type. – the binary subtype value is in the range of 0-7 or 128-135, and – the length of the byte array is: 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, or 32. • Use your driver’s BSON UUID facility to generate UUIDs. Be aware that driver implementations may imple- ment UUID serialization and deserialization logic differently, which may not be fully compatible with other drivers. See your driver documentation 14 for information concerning UUID interoperability. • Embedded Documents (page 97) for dot notation examples with embedded documents. • Arrays (page 98) for dot notation examples with arrays. • Thinking in Documents Part 1 (Blog Post) 15 • Manual references (page 172) where you save the _id field of one document in another document as a reference. Then your application can run a second query to return the related data. These references are simple and sufficient for most use cases.