The in Operator in MongoDB

Tahseen Tauseef Feb 15, 2024
  1. IN Operator ($in) in MongoDB
  2. Use the $in Operator in MongoDB to Match Values
  3. Update Documents Using the $in Operator in MongoDB
The in Operator in MongoDB

This MongoDB tutorial article will discuss the problem of using the $in operator in MongoDB.

IN Operator ($in) in MongoDB

MongoDB comes with many operators that are used for a range of tasks. The $in operator allows you to locate documents precisely, and the find() and update() methods can be used with this operator.

The $in operator compares the values of a field with the provided value in the array to choose a document inside a collection. If the value of a document’s field is an array, MongoDB’s $in operator will choose only those documents whose fields include an array with at least one item that matches the provided value.

Syntax:

{ field: { $in: [<value1>, <value2>, ... <valuen> ] }

Use the $in Operator in MongoDB to Match Values

Suppose you have a fruits store database management system and have a database where all data of your fruit items like their prices, quantity, weight, etc., is stored. We’ll discuss how to extract documents whose results match based on a given value in the following.

First, start your MongoDB server and pass the command below to list all your databases and use your database.

Command:

show dbs
use data

Let’s list out all the documents in the collection you have. You can then use the $in operator on them to filter out based on specific values.

db={
  "data": [
    {
      "_id": ObjectId("6034fd2bf74cfd0438bdb19b"),
      "onSale": false,
      "name": "Orange",
      "price": 500,
      "weight": "1 kilograms",
      "__v": 0
    },
    {
      "_id": ObjectId("603502ba24df1c2350e676e7"),
      "onSale": false,
      "name": "Banana",
      "price": 350,
      "weight": "2 dozen",
      "__v": 0
    },
    {
      "_id": ObjectId("603502ba24df1c2350e676e8"),
      "onSale": false,
      "name": "Apple",
      "price": 125,
      "weight": "500 grams",
      "__v": 0
    },
    {
      "_id": ObjectId("603502ba24df1c2350e676e9"),
      "onSale": false,
      "name": "Mango",
      "price": 300,
      "weight": "4 kilograms",
      "__v": 0
    }
  ]
}

Update Documents Using the $in Operator in MongoDB

Use the update() method on the documents to update the values of some documents.

db={
  "data": [
    {
      "_id": ObjectId("6034fd2bf74cfd0438bdb19b"),
      "onSale": false,
      "name": "Orange",
      "price": 500,
      "weight": "1 kilograms",
      "__v": 0
    },
    {
      "_id": ObjectId("603502ba24df1c2350e676e7"),
      "onSale": false,
      "name": "Banana",
      "price": 350,
      "weight": "2 dozen",
      "__v": 0
    },
    {
      "_id": ObjectId("603502ba24df1c2350e676e8"),
      "onSale": false,
      "name": "Apple",
      "price": 125,
      "weight": "500 grams",
      "__v": 0
    },
    {
      "_id": ObjectId("603502ba24df1c2350e676e9"),
      "onSale": false,
      "name": "Mango",
      "price": 300,
      "weight": "4 kilograms",
      "__v": 0
    }
  ]
}

If you want to change the price of the fruit "Apple". You can pass this query to change the price of "Apple" to "200".

Query:

db.data.update({
  name: {
    $in: [
      "Apple"
    ]
  }
},
{
  $set: {
    price: 200
  }
})

Run Query

After using the find() method, you will get the result below. The price of "Apple" was updated from 125 to 200 using the $in operator in the update() method.

Output:

use $in operator to update value in a database

Through this MongoDB tutorial article, you have learned what the $in operator is, how you can utilize the $in operator to match values in collections of databases, and how to update or edit the given collection in the database.

Related Article - MongoDB Operator