MongoDB Tutorial

  • Home
  • Getting Started
  • CRUD
  • Indexes
Home / MongoDB CRUD / MongoDB find

MongoDB find

Summary: in this tutorial, you’ll learn how to use the MongoDB find() method to select documents from a collection.

Introduction to the MongoDB find() method

The find() method finds the documents that satisfy a specified condition and returns a cursor to the matching documents.

The following shows the syntax of the find() method:

db.collection.find(query, projection)

Similar to the findOne() method, the find() method accepts two optional arguments.

1) query

The query is a document that specifies the criteria for selecting documents from the collection. If you omit the query or pass an empty document({}), the find() returns a cursor that returns all documents in the collection.

2) projection

The projection is a document that specifies the fields in the matching documents to return. If you omit the projection argument, the find() method returns all fields in the matching documents.

By default, the find() method includes the _id field in the matching documents unless you explicitly specify _id: false in the projection document.

Since the mongo shell automatically iterates the cursor returned by the find() method, you don’t need to do any extra steps to get the document from the cursor.

By default, the mongo shell shows up the first 20 documents. To continue iteration, you type the it command in the shell.

The MongoDB find() method examples

We’ll use the following books collection for the demonstration:

db.books.insertMany([ { "_id" : 1, "title" : "Unlocking Android", "isbn" : "1933988673", "categories" : [ "Open Source", "Mobile" ] }, { "_id" : 2, "title" : "Android in Action, Second Edition", "isbn" : "1935182722", "categories" : [ "Java" ] }, { "_id" : 3, "title" : "Specification by Example", "isbn" : "1617290084", "categories" : [ "Software Engineering" ] }, { "_id" : 4, "title" : "Flex 3 in Action", "isbn" : "1933988746", "categories" : [ "Internet" ] }, { "_id" : 5, "title" : "Flex 4 in Action", "isbn" : "1935182420", "categories" : [ "Internet" ] }, { "_id" : 6, "title" : "Collective Intelligence in Action", "isbn" : "1933988312", "categories" : [ "Internet" ] }, { "_id" : 7, "title" : "Zend Framework in Action", "isbn" : "1933988320", "categories" : [ "Web Development" ] }, { "_id" : 8, "title" : "Flex on Java", "isbn" : "1933988797", "categories" : [ "Internet" ] }, { "_id" : 9, "title" : "Griffon in Action", "isbn" : "1935182234", "categories" : [ "Java" ] }, { "_id" : 10, "title" : "OSGi in Depth", "isbn" : "193518217X", "categories" : [ "Java" ] }, { "_id" : 11, "title" : "Flexible Rails", "isbn" : "1933988509", "categories" : [ "Web Development" ] }, { "_id" : 13, "title" : "Hello! Flex 4", "isbn" : "1933988762", "categories" : [ "Internet" ] }, { "_id" : 14, "title" : "Coffeehouse", "isbn" : "1884777384", "categories" : [ "Miscellaneous" ] }, { "_id" : 15, "title" : "Team Foundation Server 2008 in Action", "isbn" : "1933988592", "categories" : [ "Microsoft .NET" ] }, { "_id" : 16, "title" : "Brownfield Application Development in .NET", "isbn" : "1933988711", "categories" : [ "Microsoft" ] }, { "_id" : 17, "title" : "MongoDB in Action", "isbn" : "1935182870", "categories" : [ "Next Generation Databases" ] }, { "_id" : 18, "title" : "Distributed Application Development with PowerBuilder 6.0", "isbn" : "1884777686", "categories" : [ "PowerBuilder" ] }, { "_id" : 19, "title" : "Jaguar Development with PowerBuilder 7", "isbn" : "1884777864", "categories" : [ "PowerBuilder", "Client-Server" ] }, { "_id" : 20, "title" : "Taming Jaguar", "isbn" : "1884777686", "categories" : [ "PowerBuilder" ] }, { "_id" : 21, "title" : "3D User Interfaces with Java 3D", "isbn" : "1884777902", "categories" : [ "Java", "Computer Graphics" ] }, { "_id" : 22, "title" : "Hibernate in Action", "isbn" : "193239415X", "categories" : [ "Java" ] }, { "_id" : 23, "title" : "Hibernate in Action (Chinese Edition)", "categories" : [ "Java" ] }, { "_id" : 24, "title" : "Java Persistence with Hibernate", "isbn" : "1932394885", "categories" : [ "Java" ] }, { "_id" : 25, "title" : "JSTL in Action", "isbn" : "1930110529", "categories" : [ "Internet" ] }, { "_id" : 26, "title" : "iBATIS in Action", "isbn" : "1932394826", "categories" : [ "Web Development" ] }, { "_id" : 27, "title" : "Designing Hard Software", "isbn" : "133046192", "categories" : [ "Object-Oriented Programming", "S" ] }, { "_id" : 28, "title" : "Hibernate Search in Action", "isbn" : "1933988649", "categories" : [ "Java" ] }, { "_id" : 29, "title" : "jQuery in Action", "isbn" : "1933988355", "categories" : [ "Web Development" ] }, { "_id" : 30, "title" : "jQuery in Action, Second Edition", "isbn" : "1935182323", "categories" : [ "Java" ] } ]);

1) Using MongoDB find() method to retrieve all documents from a collection

The following example uses the find() method with no parameters to return all documents from the books collection:

db.books.find()

In the mongo shell, the statement returns the first 20 documents with all available fields in the matching documents.

If you type it command and press enter, you’ll see the next 20 documents.

2) Using MongoDB find() method to search for a specific document

The following example uses the find() method to search for the document with id 10:

db.books.find({_id: 10})

The statement returns the document whose _id is 10. Since it doesn’t have the projection argument, the returned document includes all available fields:

{ "_id" : 10, "title" : "OSGi in Depth", "isbn" : "193518217X", "categories" : [ "Java" ] }

3) Using MongoDB find() method to return selected fields

The following example uses the find() method to search for documents whose category is Java. It returns the fields _id, title and isbn:

db.books.find({ categories: 'Java' }, { title: 1, isbn: 1 })

Output:

{ "_id" : 2, "title" : "Android in Action, Second Edition", "isbn" : "1935182722" } { "_id" : 9, "title" : "Griffon in Action", "isbn" : "1935182234" } { "_id" : 10, "title" : "OSGi in Depth", "isbn" : "193518217X" } { "_id" : 21, "title" : "3D User Interfaces with Java 3D", "isbn" : "1884777902" } { "_id" : 22, "title" : "Hibernate in Action", "isbn" : "193239415X" } { "_id" : 23, "title" : "Hibernate in Action (Chinese Edition)" } { "_id" : 24, "title" : "Java Persistence with Hibernate", "isbn" : "1932394885" } { "_id" : 28, "title" : "Hibernate Search in Action", "isbn" : "1933988649" } { "_id" : 30, "title" : "jQuery in Action, Second Edition", "isbn" : "1935182323" }

To remove the _id field from the matching documents, you need to explicitly specify _id: 0 in the projection argument like this:

db.books.find({ categories: 'Java' }, { title: 1, isbn: 1, _id: 0 })

Output:

{ "title" : "Android in Action, Second Edition", "isbn" : "1935182722" } { "title" : "Griffon in Action", "isbn" : "1935182234" } { "title" : "OSGi in Depth", "isbn" : "193518217X" } { "title" : "3D User Interfaces with Java 3D", "isbn" : "1884777902" } { "title" : "Hibernate in Action", "isbn" : "193239415X" } { "title" : "Hibernate in Action (Chinese Edition)" } { "title" : "Java Persistence with Hibernate", "isbn" : "1932394885" } { "title" : "Hibernate Search in Action", "isbn" : "1933988649" } { "title" : "jQuery in Action, Second Edition", "isbn" : "1935182323" }

Note that you’ll learn how to construct more complex conditions using operators in the next tutorials.

Summary

  • Use the find() method to select the documents from a collection and returns a cursor referencing the matching documents.
  • Was this tutorial helpful ?
  • YesNo
Previous MongoDB findOne
Next MongoDB Projection

Getting Started

  • What is MongoDB
  • Install MongoDB
  • MongoDB Basics
  • MongoDB Shell
  • MongoDB Data Types

Inserting Documents

  • insertOne
  • insertMany
  • mongoimport

Selecting Documents

  • findOne
  • find
  • Projection: Selecting Returned Fields

Comparison Query Operators

  • $eq: Equal To Operator
  • $lt: Less Than Operator
  • $lte: Less Than or Equal To Operator
  • $gt: Greater Than Operator
  • $gte: Greater Than or Equal To Operator
  • $ne: Not Equal To Operator
  • $in: In Operator
  • $nin: Not In Operator

Logical Query Operators

  • $and: Logical AND Opeartor
  • $or: Logical OR Operator
  • $not: Logical NOT Operator
  • $nor: Logical NOR Operator

Element Query Operators

  • $exists
  • $type

Array Query Operators

  • $size
  • $all
  • $elemMatch

Sorting & Limiting

  • sort(): Sorting documents
  • limit(): Limiting documents

Updating Documents

  • updateOne: Update one Document
  • updateMany: Update Multiple Documents
  • $inc: Increase / Decrease Field Value
  • $min: Update Field Value
  • $max: Update Field Value
  • $mul: Mutiply Field By a Number
  • $unset: Remove Fields
  • $rename: Rename Fields
  • Upsert

Deleting Documents

  • deleteOne
  • deleteMany

About MongoDBTutorial.com

This MongoDB Tutorial helps you master MongoDB quickly.

Recent Tutorials

  • MongoDB Indexes
  • MongoDB limit
  • MongoDB sort
  • MongoDB Upsert
  • MongoDB Projection

Site Links

  • Home
  • Contact
  • About
  • Privacy Policy

Copyright © 2021 ยท By mongodbtutorial.org. All Rights Reserved.