w3resource

MongoDB: db.collection.find() method

db.collection.find

The db.collection.find() method is used to perform a query on a document in a collection and returns a cursor to the selected documents.

Syntax:

db.collection.find(query, projection)

Parameters:

Name Description Required /
Optional
Type
query Specifies selection criteria using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Optional document
projection Specifies the fields to return using projection operators. To return all fields in the matching document, omit this parameter. Optional document

The projection parameter takes a document of the following form:


{ field1: <boolean>, field2: <boolean> ... }

The <boolean> value can be any of the following:

  • 1 or true to include the field. The find() method always includes the _id field even if the field is not explicitly stated to return in the projection parameter.
  • 0 or false to exclude the field.

A projection cannot contain both include and exclude specifications, except for the exclusion of the _id field. In projections that explicitly include fields, the _id field is the only field that you can explicitly exclude.

Returns:

  • A cursor to the documents that match the query criteria. When the find() method “returns documents,” the method is actually returning a cursor to the documents.
  • If find() includes a projection argument, the matching documents contain only the projection fields and the _id field. You can optionally exclude the _id field.
  • Executing find() directly in the mongo shell automatically iterates the cursor to display up to the first 20 documents. Type it to continue iteration.
  • To access the returned documents with a driver, use the appropriate cursor handling mechanism for the driver language.

Sample document in the restaurants collection:


{
  "address": {
     "building": "1007",
     "coord": [ -73.856077, 40.848447 ],
     "street": "Morris Park Ave",
     "zipcode": "10462"
  },
  "borough": "Bronx",
  "cuisine": "Bakery",
  "grades": [
     { "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
     { "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
     { "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
     { "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
     { "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
  ],
  "name": "Morris Park Bake Shop",
  "restaurant_id": "30075445"
}
........

Example: Find all documents in a collection

The following example will retrieve all the documents from the collection restaurants.

> db.restaurants.find();

Output:

> db.restaurants.find();
{ "_id" : ObjectId("55c3043ab165fa6355ec5c89"), "address" : { "building" : "1007", "coord" : [ -73.856077, 40.848447 ], "street" : "Morris Park Ave", "zipcode" : "10462" }, "borough" : "Bronx", "cuisine" : "Bakery", "grades" : [ { "date" : ISODate("2014-03-03T00:00:00Z"), "grade" : "A", "score" : 2
}, { "date" : ISODate("2013-09-11T00:00:00Z"), "grade" : "A", "score" : 6 }, { "date" : ISODate("2013-01-24T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-11-23T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2011-03-10T00:00:00Z"), "grade" : "B", "score" : 14 }
], "name" : "Morris Park Bake Shop", "restaurant_id" : "30075445" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5c8a"), "address" : { "building" : "469", "coord" : [ -73.961704, 40.662942 ], "street" : "Flatbush Avenue", "zipcode" : "11225" }, "borough" : "Brooklyn", "cuisine" : "Hamburgers", "grades" : [ { "date" : ISODate("2014-12-30T00:00:00Z"), "grade" : "A", "score
" : 8 }, { "date" : ISODate("2014-07-01T00:00:00Z"), "grade" : "B", "score" : 23 }, { "date" : ISODate("2013-04-30T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2012-05-08T00:00:00Z"), "grade" : "A", "score" : 12 } ], "name" : "Wendy'S", "restaurant_id" : "30112340" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5c8b"), "address" : { "building" : "351", "coord" : [ -73.98513559999999, 40.7676919 ], "street" : "West   57 Street", "zipcode" : "10019" }, "borough" : "Manhattan", "cuisine" : "Irish", "grades" : [ { "date" : ISODate("2014-09-06T00:00:00Z"), "grade" : "A",
"score" : 2 }, { "date" : ISODate("2013-07-22T00:00:00Z"), "grade" : "A", "score" : 11 }, { "date" : ISODate("2012-07-31T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2011-12-29T00:00:00Z"), "grade" : "A", "score" : 12 } ], "name" : "Dj Reynolds Pub And Restaurant", "restaurant_id"
 : "30191841" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5c8c"), "address" : { "building" : "2780", "coord" : [ -73.98241999999999, 40.579505 ], "street" : "Stillwell Avenue", "zipcode" : "11224" }, "borough" : "Brooklyn", "cuisine" : "American ", "grades" : [ { "date" : ISODate("2014-06-10T00:00:00Z"), "grade" : "A
", "score" : 5 }, { "date" : ISODate("2013-06-05T00:00:00Z"), "grade" : "A", "score" : 7 }, { "date" : ISODate("2012-04-13T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2011-10-12T00:00:00Z"), "grade" : "A", "score" : 12 } ], "name" : "Riviera Caterer", "restaurant_id" : "40356018"
 }
{ "_id" : ObjectId("55c3043ab165fa6355ec5c8d"), "address" : { "building" : "97-22", "coord" : [ -73.8601152, 40.7311739 ], "street" : "63 Road", "zipcode" : "11374" }, "borough" : "Queens", "cuisine" : "Jewish/Kosher", "grades" : [ { "date" : ISODate("2014-11-24T00:00:00Z"), "grade" : "Z", "score" :
 20 }, { "date" : ISODate("2013-01-17T00:00:00Z"), "grade" : "A", "score" : 13 }, { "date" : ISODate("2012-08-02T00:00:00Z"), "grade" : "A", "score" : 13 }, { "date" : ISODate("2011-12-15T00:00:00Z"), "grade" : "B", "score" : 25 } ], "name" : "Tov Kosher Kitchen", "restaurant_id" : "40356068" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5c8e"), "address" : { "building" : "8825", "coord" : [ -73.8803827, 40.7643124 ], "street" : "Astoria Boulevard", "zipcode" : "11369" }, "borough" : "Queens", "cuisine" : "American ", "grades" : [ { "date" : ISODate("2014-11-15T00:00:00Z"), "grade" : "Z", "sco
re" : 38 }, { "date" : ISODate("2014-05-02T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2013-03-02T00:00:00Z"), "grade" : "A", "score" : 7 }, { "date" : ISODate("2012-02-10T00:00:00Z"), "grade" : "A", "score" : 13 } ], "name" : "Brunos On The Boulevard", "restaurant_id" : "4035615
1" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5c8f"), "address" : { "building" : "2206", "coord" : [ -74.1377286, 40.6119572 ], "street" : "Victory Boulevard", "zipcode" : "10314" }, "borough" : "Staten Island", "cuisine" : "Jewish/Kosher", "grades" : [ { "date" : ISODate("2014-10-06T00:00:00Z"), "grade"
: "A", "score" : 9 }, { "date" : ISODate("2014-05-20T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2013-04-04T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISO Date("2012-01-24T00:00:00Z"), "grade" : "A", "score" : 9 } ], "name" : "Kosher Island", "restaurant _id" : "4035644
2" }
.........

Example: Find documents that Match Query Criteria

The following example will retrieve all the documents from the collection restaurants which matches the query criteria cord is more than 110.

db.restaurants.find( { "address.cord": { $get: 110 } } );

Output:

> db.restaurants.find( { "address.cord": { $get: 110 } } );
{ "_id" : ObjectId("55c3043ab165fa6355ec5d73"), "address" : { "building" : "155157", "coord" : [ 153.1628795, -28.0168595 ], "street" : "Christie St.", "zipcode" : "10002" }, "borough" : "Manhattan", "cuisine" : "Steak", "grades" : [ { "date" : ISODate("2014-11-12T00:00:00Z"), "grade" : "A", "score"
 : 12 }, { "date" : ISODate("2013-09-24T00:00:00Z"), "grade" : "A", "score" : 7 }, { "date" : ISODate("2013-04-12T00:00:00Z"), "grade" : "B", "score" : 26 }, { "date" : ISODate("2012-09-21T00:00:00Z"), "grade" : "A", "score" : 5 }, { "date" : ISODate("2012-04-10T00:00:00Z"), "grade" : "A", "score" :
 2 } ], "name" : "Sammy'S Steakhouse", "restaurant_id" : "40368552" }

Example: Find documents using Query for Equality

The following example will retrieve all the documents from the collection restaurants which satisfy the equality test cuisine is Ethiopian.

db.restaurants.find( {"cuisine" : "Ethiopian" } );

Output:

> db.restaurants.find( {"cuisine" : "Ethiopian" } );
{ "_id" : ObjectId("55c3043ab165fa6355ec5f2d"), "address" : { "building" : "1239", "coord" : [ -73.9585846, 40.8097806 ], "street" : "Amsterdam Avenue", "zipcode" : "10027" }, "borough" : "Manhattan", "cuisine" : "Ethiopian", "grades" : [ { "date" : ISODate("2014-03-03T00:00:00Z"), "grade" : "A", "s
core" : 9 }, { "date" : ISODate("2013-02-02T00:00:00Z"), "grade" : "A", "score" : 13 }, { "date" : ISODate("2011-12-27T00:00:00Z"), "grade" : "A", "score" : 7 }, { "date" : ISODate("2011-09-23T00:00:00Z"), "grade" : "A", "score" : 12 } ], "name" : "Masawa", "restaurant_id" : "40388091" }
{ "_id" : ObjectId("55c3043ab165fa6355ec68d6"), "address" : { "building" : "124", "coord" : [ -74.00024599999999, 40.729905 ], "street" : "Macdougal Street", "zipcode" : "10012" }, "borough" : "Manhattan", "cuisine" : "Ethiopian", "grades" : [ { "date" : ISODate("2014-08-08T00:00:00Z"), "grade" : "A
", "score" : 13 }, { "date" : ISODate("2013-07-18T00:00:00Z"), "grade" : "A", "score" : 4 }, { "date" : ISODate("2012-07-17T00:00:00Z"), "grade" : "A", "score" : 5 }, { "date" : ISODate("2011-12-12T00:00:00Z"), "grade" : "A", "score" : 12 } ], "name" : "Meskerem", "restaurant_id" : "40792697" }
{ "_id" : ObjectId("55c3043ab165fa6355ec6943"), "address" : { "building" : "650", "coord" : [ -73.99346299999999, 40.761925 ], "street" : "10 Avenue", "zipcode" : "10036" }, "borough" : "Manhattan", "cuisine" : "Ethiopian", "grades" : [ { "date" : ISODate("2014-07-14T00:00:00Z"), "grade" : "A", "sco
re" : 12 }, { "date" : ISODate("2014-01-14T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2013-02-12T00:00:00Z"), "grade" : "A", "score" : 11 } ], "name" : "Queen Of Sheba Ethiopian Restaurant", "restaurant_id" : "40813634" }
{ "_id" : ObjectId("55c3043ab165fa6355ec7000"), "address" : { "building" : "338", "coord" : [ -73.9868924, 40.7264833 ], "street" : "East    6 Street", "zipcode" : "10003" }, "borough" : "Manhattan", "cuisine" : "Ethiopian", "grades" : [ { "date" : ISODate("2014-08-15T00:00:00Z"), "grade" : "A", "sc
ore" : 10 }, { "date" : ISODate("2013-07-12T00:00:00Z"), "grade" : "A", "score" : 13 }, { "date" : ISODate("2012-07-16T00:00:00Z"), "grade" : "A", "score" : 13 }, { "date" : ISODate("2012-02-27T00:00:00Z"), "grade" : "A", "score" : 2 }, { "date" : ISODate("2011-09-20T00:00:00Z"), "grade" : "A", "sco
re" : 13 } ], "name" : "Awash Ethiopian Restaurant", "restaurant_id" : "41044592" }
{ "_id" : ObjectId("55c3043ab165fa6355ec7412"), "address" : { "building" : "2084", "coord" : [ -73.9565946, 40.8022824 ], "street" : "Fredrick Douglas Boulevard", "zipcode" : "10026" }, "borough" : "Manhattan", "cuisine" : "Ethiopian", "grades" : [ { "date" : ISODate("2014-08-28T00:00:00Z"), "grade"
 : "A", "score" : 8 }, { "date" : ISODate("2014-01-10T00:00:00Z"), "grade" : "A", "score" : 5 }, { "date" : ISODate("2013-03-15T00:00:00Z"), "grade" : "A", "score" : 7 }, { "date" : ISODate("2012-03-13T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-08-30T00:00:00Z"), "grade" :
"A", "score" : 6 } ], "name" : "Zoma", "restaurant_id" : "41156869" }
......

Example: Find documents using Operators

The following example will retrieve all the documents from the collection restaurants which satisfy the criteria, that is score is within the specified value.

db.restaurants.find({"grades.score" : {$in : [35,40,42,44,46]}});

Output:

> db.restaurants.find({"grades.score" : {$in : [35,40,42,44,46]}});
{ "_id" : ObjectId("55c3043ab165fa6355ec5ccd"), "address" : { "building" : "180", "coord" : [ -73.9788694, 40.7665961 ], "street" : "Central Park South", "zipcode" : "10019" }, "borough" : "Manhattan", "cuisine" : "American ", "grades" : [ { "date" : ISODate("2014-12-15T00:00:00Z"), "grade" : "A", "
score" : 12 }, { "date" : ISODate("2014-08-07T00:00:00Z"), "grade" : "C", "score" : 40 }, { "date" : ISODate("2013-07-29T00:00:00Z"), "grade" : "A", "score" : 2 }, { "date" : ISODate("2012-12-13T00:00:00Z"), "grade" : "A", "score" : 11 }, { "date" : ISODate("2012-07-30T00:00:00Z"), "grade" : "C", "s
core" : 4 }, { "date" : ISODate("2012-02-16T00:00:00Z"), "grade" : "A", "score" : 2 } ], "name" : "Nyac Main Dining Room", "restaurant_id" : "40364467" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5cfe"), "address" : { "building" : "910", "coord" : [ -73.9799932, 40.7660886 ], "street" : "Seventh Avenue", "zipcode" : "10019" }, "borough" : "Manhattan", "cuisine" : "American ", "grades" : [ { "date" : ISODate("2015-01-08T00:00:00Z"), "grade" : "Z", "scor
e" : 35 }, { "date" : ISODate("2014-06-02T00:00:00Z"), "grade" : "B", "score" : 19 }, { "date" : ISODate("2013-11-25T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2013-06-24T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2012-12-04T00:00:00Z"), "grade" : "B", "score
" : 24 }, { "date" : ISODate("2012-06-14T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2012-02-24T00:00:00Z"), "grade" : "B", "score" : 21 } ], "name" : "La Parisienne Diner", "restaurant_id" : "40365633" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5d22"), "address" : { "building" : "5820", "coord" : [ -73.9002615, 40.885186 ], "street" : "Broadway", "zipcode" : "10463" }, "borough" : "Bronx", "cuisine" : "American ", "grades" : [ { "date" : ISODate("2014-02-26T00:00:00Z"), "grade" : "A", "score" : 5 },
{ "date" : ISODate("2013-10-09T00:00:00Z"), "grade" : "B", "score" : 19 }, { "date" : ISODate("2013-05-15T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2012-11-20T00:00:00Z"), "grade" : "B", "score" : 18 }, { "date" : ISODate("2011-10-17T00:00:00Z"), "grade" : "A", "score" : 10 }, {
 "date" : ISODate("2011-06-22T00:00:00Z"), "grade" : "C", "score" : 35 } ], "name" : "The Punch Bowl", "restaurant_id" : "40366497" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5d4d"), "address" : { "building" : "1372", "coord" : [ -73.9870818, 40.7523004 ], "street" : "Broadway", "zipcode" : "10018" }, "borough" : "Manhattan", "cuisine" : "Jewish/Kosher", "grades" : [ { "date" : ISODate("2014-05-01T00:00:00Z"), "grade" : "A", "score
" : 12 }, { "date" : ISODate("2013-11-04T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2013-05-14T00:00:00Z"), "grade" : "A", "score" : 13 }, { "date" : ISODate("2012-10-15T00:00:00Z"), "grade" : "C", "score" : 40 }, { "date" : ISODate("2011-10-18T00:00:00Z"), "grade" : "A", "score
" : 12 }, { "date" : ISODate("2011-05-27T00:00:00Z"), "grade" : "A", "score" : 5 } ], "name" : "Mr Broadway Kosher Restaurant", "restaurant_id" : "40367534" }
{ "_id" : ObjectId("55c3043ab165fa6355ec5da0"), "address" : { "building" : "1011", "coord" : [ -73.9623333, 40.7757194 ], "street" : "Madison Avenue", "zipcode" : "10075" }, "borough" : "Manhattan", "cuisine" : "American ", "grades" : [ { "date" : ISODate("2014-05-02T00:00:00Z"), "grade" : "A", "sco
re" : 10 }, { "date" : ISODate("2013-10-21T00:00:00Z"), "grade" : "B", "score" : 15 }, { "date" : ISODate("2013-04-19T00:00:00Z"), "grade" : "B", "score" : 0 }, { "date" : ISODate("2012-11-21T00:00:00Z"), "grade" : "C", "score" : 40 }, { "date" : ISODate("2012-04-09T00:00:00Z"), "grade" : "B", "scor
e" : 17 } ], "name" : "Viand Cafe", "restaurant_id" : "40369753" }

Example: Find documents including and excluding specific field

The following example will retrieve all the documents from the collection restaurants including the field borough and cuisine and excluding the field _id which satisfy the criteria, that is coord is more than 100.

db.restaurants.find({ "address.coord": { $gt: 100 }},{ borough: 1, cuisine: 1, address: 1 ,_id :0});

Output:

> db.restaurants.find({ "address.coord": { $gt: 100 }},{ borough: 1, cuisine: 1, address: 1 ,_id :0});
{ "address" : { "building" : "155157", "coord" : [ 153.1628795, -28.0168595 ], "street" : "Christie St.", "zipcode" : "10002" }, "borough" : "Manhattan", "cuisine" : "Steak" }
{ "address" : { "building" : "14", "coord" : [ 104.9179596, 11.5415182 ], "street" : "West Wing", "zipcode" : "11430" }, "borough" : "Queens", "cuisine" : "Café/Coffee/Tea" }
{ "address" : { "building" : "14", "coord" : [ 104.9179596, 11.5415182 ], "street" : "West Wing", "zipcode" : "11430" }, "borough" : "Queens", "cuisine" : "Continental" }
{ "address" : { "building" : "NKA", "coord" : [ 100.6294417, 13.7440888 ], "street" : "@ West 15Th Street", "zipcode" : "10004" }, "borough" : "Manhattan", "cuisine" : "Mexican" }
{ "address" : { "building" : "W 30TH ST", "coord" : [ 100.6177619, 13.7085011 ], "street" : "10 Th Ave", "zipcode" : "10001" }, "borough" : "Manhattan", "cuisine" : "American " }

Retrieve the restaurants data from here

Previous: db.collection.explain() method
Next: db.collection. findAndModify() method



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/mongodb/shell-methods/collection/db-collection-find.php