Cookies help us deliver our services. By using our services, you agree to our use of cookies. More information

FIND Examples

From NoSQLZoo
Jump to: navigation, search

Introducing the world collection of countries

These examples introduce NoSQL using MongoDB. We will be using the find() command on the world collection .

By default, find() returns the entire contents of a collection. This is equivalent to find({})

Show all the documents in world;

find and findOne

It is also possible to just return the first document with findOne().

Show the first document of world;

skip and limit

It is also possible to retrieve a specific document based on its position using skip(n-1) and limit(1).
As this is JavaScript you can also access by index:[n-1];

Get the 50th document of world;


find() can filter results if a document is used as an argument.

Get all the data concerning france{name: "France"});

Using a projection with find

By passing a second parameter to find() the output can be limited to certain field(s)
In this example 1 indicates true and 0 indicates false

A feature of MongoDB is the ObjectID or _id.
This is a unique ID MongoDB adds to each document. Unlike other keys, it has to be explicitly set to false to be excluded from the results set.

Get the population of Germany{name: "Germany"}, {population: 1, _id: 0});


MongoDB also allows comparisons. Syntax:

Mongo | MySQL
$eq   | == 
$gt   | >
$gte  | >=
$lt   | <
$lte  | <=
$ne   | !=, <>
$in   | IN
$nin  | NOT IN

List the countries with a population that's less than 1 million.{population: {$lt: 1000000}}, {name: 1, _id: 0});

Logical operations $and $or $not

It's also possible to have multiple conditions for use in an $and, $or, etc. This can be done in several ways, for example:

// AND (implicit)
db.<collection>.find({<first condition>, <second condition>});{population: {$lt: 1000000}, area: {$gt: 200000}});

// AND (explicit)
db.<collection>.find({$and: [<first condition>, <second condition>]});{$and: [{population: {$lt: 1000000}}, {area: {$gt: 200000}}]});

// OR
db.<collection>.find({$or: [<first condition>, <second condition>]});{$or: [{population: {$lt: 1000000}}, {area: {$gt: 200000}}]});

Find the countries with less than 1 million people, but over 200000km2 area.{population: {$lt: 1000000}, area: {$gt: 200000}}, {name: 1, _id: 0});

$in and $nin

Lists can be used with $in and $nin:

Find the continent of Brazil, the United Kingdom, and Ghana.
   {name: {$in: ['Brazil', 'Ghana', 'United Kingdom']}},
   {name: 1, continent: 1, _id: 0}

Regular Expressions

Pattern matching is possible with Regular Expressions (RegEx)

Show each country that begins with G.

RegEx Pattern Matching
  {name: {$regex: /^G/}},
  {name: 1, continent: 1, _id: 0}