You are previewing 50 Tips and Tricks for MongoDB Developers.
O'Reilly logo
50 Tips and Tricks for MongoDB Developers

Book Description

A collection of tips, tricks, and hacks to help MongoDB developers get the most out of the software. The tips cover everything from application design to data safety and monitoring.

Table of Contents

  1. 50 Tips and Tricks for MongoDB Developers
  2. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  3. Preface
    1. Who This Book Is For
    2. Conventions Used in This Book
    3. Using Code Examples
    4. Safari® Books Online
    5. How to Contact Us
  4. 1. Application Design Tips
    1. Tip #1: Duplicate data for speed, reference data for integrity
      1. Example: a shopping cart order
      2. Decision factors
    2. Tip #2: Normalize if you need to future-proof data
    3. Tip #3: Try to fetch data in a single query
      1. Example: a blog
      2. Example: an image board
    4. Tip #4: Embed dependent fields
    5. Tip #5: Embed “point-in-time” data
    6. Tip #6: Do not embed fields that have unbound growth
    7. Tip #7: Pre-populate anything you can
    8. Tip #8: Preallocate space, whenever possible
    9. Tip #9: Store embedded information in arrays for anonymous access
    10. Tip #10: Design documents to be self-sufficient
    11. Tip #11: Prefer $-operators to JavaScript
      1. Behind the scenes
      2. Getting better performance
    12. Tip #12: Compute aggregations as you go
    13. Tip #13: Write code to handle data integrity issues
  5. 2. Implementation Tips
    1. Tip #14: Use the correct types
    2. Tip #15: Override _id when you have your own simple, unique id
    3. Tip #16: Avoid using a document for _id
    4. Tip #17: Do not use database references
    5. Tip #18: Don’t use GridFS for small binary data
    6. Tip #19: Handle “seamless” failover
    7. Tip #20: Handle replica set failure and failover
  6. 3. Optimization Tips
    1. Tip #21: Minimize disk access
      1. Fuzzy Math
    2. Tip #22: Use indexes to do more with less memory
    3. Tip #23: Don’t always use an index
      1. Write speed
    4. Tip #24: Create indexes that cover your queries
    5. Tip #25: Use compound indexes to make multiple queries fast
    6. Tip #26: Create hierarchical documents for faster scans
    7. Tip #27: AND-queries should match as little as possible as fast as possible
    8. Tip #28: OR-queries should match as much as possible as soon as possible
  7. 4. Data Safety and Consistency
    1. Tip #29: Write to the journal for single server, replicas for multiserver
    2. Tip #30: Always use replication, journaling, or both
    3. Tip #31: Do not depend on repair to recover data
    4. Tip #32: Understand getlasterror
    5. Tip #33: Always use safe writes in development
    6. Tip #34: Use w with replication
    7. Tip #35: Always use wtimeout with w
    8. Tip #36: Don’t use fsync on every write
    9. Tip #37: Start up normally after a crash
    10. Tip #38: Take instant-in-time backups of durable servers
  8. 5. Administration Tips
    1. Tip #39: Manually clean up your chunks collections
    2. Tip #40: Compact databases with repair
    3. Tip #41: Don’t change the number of votes for members of a replica set
    4. Tip #42: Replica sets can be reconfigured without a master up
    5. Tip #43: --shardsvr and --configsvr aren’t required
    6. Tip #44: Only use --notablescan in development
    7. Tip #45: Learn some JavaScript
    8. Tip #46: Manage all of your servers and databases from one shell
    9. Tip #47: Get “help” for any function
    10. Tip #48: Create startup files
    11. Tip #49: Add your own functions
      1. Loading JavaScript from files
    12. Tip #50: Use a single connection to read your own writes
  9. About the Author
  10. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  11. Copyright