$all

The $all operator is used to match arrays that contain all specified elements. This allows you to filter documents based on multiple values in a single array field.

Syntax

The basic syntax for using the $all operator is:

{
  <field>: {
    $all: [<value1>, <value2>, ..., <valueN>]
  }
}

Here, <field> refers to the name of the array field that should be queried, and <value1>, <value2>, ..., <valueN> are the values that you want to match against.

Example

Let’s assume we have a collection movies with documents containing the following fields: _id, title, and tags. The tags field is an array of string values.

Here is an example document from the movies collection:

{
  _id: 1,
  title: "The Matrix",
  tags: ["action", "sci-fi", "cyberpunk"]
}

If you want to find all movies with the tags “action” and “sci-fi”, you can use the $all operator as shown below:

db.movies.find({ tags: { $all: ['action', 'sci-fi'] } });

This query would return all documents where the tags array contains both “action” and “sci-fi” values.

Summary

The $all operator allows you to match documents based on the presence of multiple values in an array field. It provides a simple and powerful way to query for documents that meet specific criteria within arrays.