Home > Store

NoSQL with MongoDB in 24 Hours, Sams Teach Yourself

Register your product to gain access to bonus material or receive a coupon.

NoSQL with MongoDB in 24 Hours, Sams Teach Yourself

eBook (Watermarked)

  • Your Price: $25.75
  • List Price: $32.19
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Acrobat® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.


  • Copyright 2015
  • Dimensions: 7" x 9-1/8"
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-13-384443-9
  • ISBN-13: 978-0-13-384443-6

NoSQL database usage is growing at a stunning 50% per year, as organizations discover NoSQL's potential to address even the most challenging Big Data and real-time database problems. Every NoSQL database is different, but one is the most popular by far: MongoDB.

Now, in just 24 lessons of one hour or less, you can learn how to leverage MongoDB's immense power. Each short, easy lesson builds on all that's come before, teaching NoSQL concepts and MongoDB techniques from the ground up.

Sams Teach Yourself NoSQL with MongoDB in 24 Hours covers all this, and much more:

  • Learning how NoSQL is different, when to use it, and when to use traditional RDBMSes instead
  • Designing and implementing MongoDB databases of diverse types and sizes
  • Storing and interacting with data via Java, PHP, Python, and Node.js/Mongoose
  • Choosing the right NoSQL distribution model for your application
  • Installing and configuring MongoDB
  • Designing MongoDB data models, including collections, indexes, and GridFS
  • Balancing consistency, performance, and durability
  • Leveraging the immense power of Map-Reduce
  • Administering, monitoring, securing, backing up, and repairing MongoDB databases
  • Mastering advanced techniques such as sharding and replication
  • Optimizing performance



Download: Code Files (2 MB .zip)

Sample Content

Table of Contents

Introduction     1
  How This Book Is Organized     1
  Code Examples     2
  Special Elements     2
  Q&A, Quiz, and Exercises     3

Part I: Getting Started with NoSQL and MongoDB


HOUR 1: Introducing NoSQL and MongoDB     5
  What Is NoSQL?     6
  Choosing RDBMS, NoSQL, or Both     7
  Understanding MongoDB     8
  MongoDB Data Types     10
  Planning Your Data Model     11
  Summary     17
  Q&A     18
  Workshop     18
HOUR 2: Installing and Configuring MongoDB     21
  Building the MongoDB Environment     21
  Accessing the MongoDB HTTP Interface     26
  Accessing MongoDB from the Shell Client     27
  Scripting the MongoDB Shell     31
  Summary     34
  Q&A     35
  Workshop     35
HOUR 3: Using JavaScript in the MongoDB Shell     37
  Defining Variables     37
  Understanding JavaScript Data Types     38
  Outputting Data in a MongoDB Shell Script     40
  Using Operators     40
  Implementing Looping     44
  Creating Functions     49
  Understanding Variable Scope     52
  Using JavaScript Objects     53
  Manipulating Strings     56
  Working with Arrays     60
  Adding Error Handling     65
  Summary     67
  Q&A     67
  Workshop     67

Part II: Implementing NoSQL in MongoDB

HOUR 4: Configuring User Accounts and Access Control     69
  Understanding the Admin Database     69
  Administrating User Accounts     70
  Configuring Access Control     78
  Summary     83
  Q&A     83
  Workshop     83
HOUR 5: Managing Databases and Collections from the MongoDB Shell     85
  Understanding the Database and Collection Objects     85
  Managing Databases     91
  Managing Collections     96
  Implementing the Example Dataset     100
  Summary     104
  Q&A     104
  Workshop     104
HOUR 6: Finding Documents in the MongoDB Collection from the MongoDB Shell     107
  Understanding the Cursor Object     107
  Understanding Query Operators     109
  Getting Documents from a Collection     112
  Finding Specific Sets of Documents     117
  Summary     122
  Q&A     122
  Workshop     123
HOUR 7: Additional Data-Finding Operations Using the MongoDB Shell     125
  Counting Documents     125
  Sorting Results Sets     128
  Limiting Result Sets     130
  Finding Distinct Field Values     138
  Summary     141
  Q&A     141
  Workshop     141
HOUR 8: Manipulating MongoDB Documents in a Collection     143
  Understanding the Write Concern     143
  Configuring Database Connection Error Handling     144
  Getting the Status of Database Write Requests     145
  Understanding Database Update Operators     146
  Adding Documents to a Collection in the MongoDB Shell     149
  Updating Documents in a Collection from the MongoDB Shell     151
  Saving Documents in a Collection Using the MongoDB Shell     155
  Upserting Documents in Collections Using the MongoDB Shell     158
  Deleting Documents from a Collection Using the MongoDB Shell     161
  Summary     163
  Q&A     164
  Workshop     164
HOUR 9: Utilizing the Power of Grouping, Aggregation, and Map Reduce     167
  Grouping Results of Find Operations in the MongoDB Shell     167
  Using Aggregation to Manipulate the Data During Requests from the MongoDB Shell     171
  Applying Map Reduce to Generate New Data Results Using the MongoDB Shell     178
  Summary     183
  Q&A     184
  Workshop     184

Part III: Using MongoDB in Applications

HOUR 10: Implementing MongoDB in Java Applications     185
  Understanding MongoDB Driver Objects in Java     185
  Finding Documents Using Java     194
  Counting Documents in Java     201
  Sorting Results Sets in Java     203
  Summary     207
  Q&A     207
  Workshop     207
HOUR 11: Accessing Data from MongoDB in Java Applications     209
  Limiting Result Sets Using Java     209
  Finding a Distinct Field Value in Java     218
  Grouping Results of Find Operations in Java Applications     221
  Using Aggregation to Manipulate the Data During Requests from Java
  Applications     225
  Summary     228
  Q&A     229
  Workshop     229
HOUR 12: Working with MongoDB Data in Java Applications     231
  Adding Documents from Java     231
  Removing Documents from Java     236
  Saving Documents from Java     239
  Updating Documents from Java     241
  Upserting Documents from Java     245
  Summary     249
  Q&A     249
  Workshop     249
HOUR 13: Implementing MongoDB in PHP Applications     251
  Understanding MongoDB Driver Objects in PHP     251
  Finding Documents Using PHP     259
  Counting Documents in PHP     265
  Sorting Result Sets in PHP     267
  Summary     270
  Q&A     270
  Workshop     270
HOUR 14: Accessing Data from MongoDB in PHP Applications     273
  Limiting Result Sets Using PHP     273
  Finding Distinct Field Values in PHP     281
  Grouping Results of Find Operations in PHP Applications     283
  Using Aggregation to Manipulate the Data During Requests from PHP Applications     287
  Summary     290
  Q&A     290
  Workshop     290
HOUR 15: Working with MongoDB Data in PHP Applications     293
  Adding Documents from PHP     293
  Removing Documents from PHP     297
  Saving Documents from PHP     299
  Updating Documents from PHP     302
  Upserting Documents from PHP     305
  Summary     308
  Q&A     309
  Workshop     309
HOUR 16: Implementing MongoDB in Python Applications     311
  Understanding MongoDB Driver Objects in Python     311
  Finding Documents Using Python     318
  Counting Documents in Python     324
  Sorting Result Sets in Python     326
  Summary     329
  Q&A     329
  Workshop     329
HOUR 17: Accessing Data from MongoDB in Python Applications     331
  Limiting Result Sets Using Python     331
  Finding Distinct Field Value in Python     339
  Grouping Results of Find Operations in Python Applications     341
  Using Aggregation to Manipulate the Data During Requests from Python Applications     344
  Summary     347
  Q&A     347
  Workshop     348
HOUR 18: Working with MongoDB Data in Python Applications     349
  Adding Documents from Python     349
  Removing Documents from Python     353
  Saving Documents from Python     355
  Updating Documents from Python     358
  Upserting Documents from Python     361
  Summary     364
  Q&A     364
  Workshop     365
HOUR 19: Implementing MongoDB in Node.js Applications     367
  Understanding MongoDB Driver Objects in Node.js     367
  Finding Documents Using Node.js     377
  Counting Documents in Node.js     383
  Sorting Results Sets in Node.js     385
  Summary     388
  Q&A     389
  Workshop     389
HOUR 20: Accessing Data from MongoDB in Node.js Applications     391
  Limiting Result Sets Using Node.js     391
  Finding Distinct Field Value in Node.js     400
  Grouping Results of Find Operations in Node.js Applications     402
  Using Aggregation to Manipulate the Data During Requests from Node.js Applications     406
  Summary     409
  Q&A     409
  Workshop     410
HOUR 21: Working with MongoDB Data in Node.js Applications     411
  Adding Documents from Node.js     411
  Removing Documents from Node.js     416
  Saving Documents from Node.js     419
  Updating Documents from Node.js     423
  Upserting Documents from Node.js     427
  Summary     431
  Q&A     431
  Workshop     431

Part IV: Additional MongoDB Concepts

HOUR 22: Database Administration Using the MongoDB Shell     433
  Working with Databases and Collections     433
  Working with Indexes     438
  Understanding Performance and Diagnostic Tasks     443
  Repairing a MongoDB Database     453
  Backing Up MongoDB     454
  Summary     455
  Q&A     456
  Workshop     456
HOUR 23: Implementing Replication and Sharding in MongoDB     459
  Applying Replication in MongoDB     459
  Implementing Sharding in MongoDB     468
  Summary     479
  Q&A     479
  Workshop     479
HOUR 24: Implementing a MongoDB GridFS Store     481
  Understanding the GridFS Store     481
  Implementing a GridFS in the MongoDB Shell     482
  Implementing a MongoDB GridFS Using the Java MongoDB Driver     484
  Implementing a MongoDB GridFS Using the PHP MongoDB Driver     489
  Implementing a MongoDB GridFS Using the Python MongoDB Driver     494
  Implementing a MongoDB GridFS Using the Node.js MongoDB Driver     497
  Summary     502
  Q&A     502
  Workshop     502

Index     505


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020