w3resource

Retrieve Movies Released Before 1900


Retrieve all movies with title, languages, released, year, directors, writers, countries from the 'movies' collection in MongoDB that released before the year 1900.

Structure of 'movies' collection:

{
    _id: ObjectId("573a1390f29313caabcd42e8"),
plot: 'A group of bandits stage a brazen train hold-up, only to find a determined posse hot on their heels.',
genres: [ 'Short', 'Western' ],
runtime: 11,
cast: [
      'A.C. Abadie',
      "Gilbert M. 'Broncho Billy' Anderson",
      'George Barnes',
      'Justus D. Barnes'
    ],
poster: 'https://m.media-amazon.com/images/M/MV5BMTU3NjE5NzYtYTYyNS00MDVmLWIwYjgtMmYwYWIxZDYyNzU2XkEyXkFqcGdeQXVyNzQzNzQxNzI@._V1_SY1000_SX677_AL_.jpg',
title: 'The Great Train Robbery',
fullplot: "Among the earliest existing films in American cinema - notable as the first film that presented a narrative story to tell - it depicts a group of cowboy outlaws who hold up a train and rob the passengers. They are then pursued by a Sheriff's posse. Several scenes have color included - all hand tinted.",
languages: [ 'English' ],
released: ISODate("1903-12-01T00:00:00.000Z"),
directors: [ 'Edwin S. Porter' ],
rated: 'TV-G',
awards: { wins: 1, nominations: 0, text: '1 win.' },
lastupdated: '2015-08-13 00:27:59.177000000',
year: 1903,
imdb: { rating: 7.4, votes: 9847, id: 439 },
countries: [ 'USA' ],
type: 'movie',
tomatoes: {
viewer: { rating: 3.7, numReviews: 2559, meter: 75 },
fresh: 6,
critic: { rating: 7.6, numReviews: 6, meter: 100 },
rotten: 0,
lastUpdated: ISODate("2015-08-08T19:16:10.000Z")
    }
.....

Query:

db.movies.find(
  {
year: { $lt: 1900 },
type: "movie"
  },
  {
title: 1,
languages: 1,
released: 1,
year: 1,
directors: 1,
writers: 1,
countries: 1
  }
)

Output:

  {
    _id: ObjectId("573a1390f29313caabcd4135"),
title: 'Blacksmith Scene',
countries: [ 'USA' ],
released: ISODate("1893-05-09T00:00:00.000Z"),
directors: [ 'William K.L. Dickson' ],
year: 1893
  },
  {
    _id: ObjectId("573a139cf29313caabcf560f"),
title: 'The Kiss',
countries: [ 'USA' ],
directors: [ 'William Heise' ],
writers: [ 'John J. McNally (play)' ],
year: 1896
  },
  {
    _id: ObjectId("573a139ef29313caabcfe4f1"),
title: 'Dickson Experimental Sound Film',
countries: [ 'USA' ],
languages: [ 'English' ],
directors: [ 'William K.L. Dickson' ],
year: 1894
  },
  {
    _id: ObjectId("573a13a0f29313caabd041db"),
title: 'The Kiss',
countries: [ 'USA' ],
directors: [ 'William Heise' ],
writers: [ 'John J. McNally (play)' ],
year: 1896
  },
  {
    _id: ObjectId("573a13a3f29313caabd0d5a4"),
title: 'Newark Athlete',
countries: [ 'USA' ],
languages: [ 'English' ],
directors: [ 'William K.L. Dickson' ],
year: 1891
  }

Explanation:

The said query in MongoDB returns movies with the title, languages, release date, year, directors, writers, and countries fields from the 'movies' collection in MongoDB that were released before the year 1900.

In the find() method the $lt operator selects movies with a year less than 1900 and a type equal to "movie".

The projection parameter includes the fields title, languages, released, year, directors, writers, and countries in the result.

Improve this sample solution and post your code through Disqus.

Previous: Movies with Viewer Rating between 3 and 4 on Tomatoes.
Next: Find Movies with "Fire" in fullplot.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.