Mongoose find() Query : operators gt , lt ,gte, lte, in , all, nin # Challenge Your Skills
Tags: javascript, webdev, programming, database
Published: 2024-02-08 18:11:34

1) Query in mongoose is very useful and you can perform multiple quires by find() method.
2) Here you can use many operators like -> $gt, $lt, $gte, $lte.
3) For arrays in mongoose you can use some operators like => $all, $in, $nin

Let's go through this code to understand the multiple combinations that you can make by find() method.

To know more about mongoose and enhance your knowledge you can go to my github account
[click here to get the github aaccount](https://github.com/swapnanilWebDeveloper/MongooseJs_Programs.git)

```javascript

const mongoose = require('mongoose');

main().catch(err => console.log(err));

async function main() {
  await mongoose.connect('mongodb://127.0.0.1:27017/StudentData');

  const studentSchema = new mongoose.Schema({
    name: {
        first : String,
        last : String,
    },
    email : String,
    address : {
        state : String,
        district : String,
        city : String,
    },
    science : {
        physics : Number,
        chemistry : Number,
        mathematics : Number,
    },
    hobbies : [String],
  });

  const Student = mongoose.model('Student', studentSchema);

   await Student.insertMany([
    { 
        name : {
            first : "Mayuk",
            last : "Mukherjee",
        },
        email : "Mayuk@gmail.com",
        address : {
            state : "California",
            district : "Atlanta",
            city : "Georgia",
        },
        science : {
            physics : 99,
            chemistry : 88,
            mathematics : 97,
        },
        hobbies : ["sports", "singing", "dancing", "painting"],
    },
    { 
        name : {
            first : "Suryendu",
            last : "Sarkar",
        },
        email : "Suryendu@gmail.com",
        address : {
            state : "Texas",
            district : "Atlanta",
            city : "Denver",
        },
        science : {
            physics : 74,
            chemistry : 82,
            mathematics : 86,
        },
        hobbies : ["reading", "singing", "blogging", "sculpting"],
    },
    { 
        name : {
            first : "Aninda",
            last : "Mukherjee",
        },
        email : "Aninda@gmail.com",
        address : {
            state : "Massachuttes",
            district : "Atlanta",
            city : "Georgia",
        },
        science : {
            physics : 82,
            chemistry : 94,
            mathematics : 75,
        },
        hobbies : ["painting", "travelling", "sports", "judo"],
    },
    { 
        name : {
            first : "Sanlap",
            last : "Gadai",
        },
        email : "Sanlap@gmail.com",
        address : {
            state : "Alabama",
            district : "Oklohama",
            city : "Atlanta",
        },
        science : {
            physics : 85,
            chemistry : 66,
            mathematics : 79,
        },
        hobbies : ["coocking", "drawing", "sports", "gymming"],
    },
   ]);
   
   const allStudent = await Student.find({});
  // console.log(allStudent);

  // name.first = "Mayuk", name.last = "Mukherjee"
   const result1 = await Student.find({ 'name.first' : 'Mayuk', 'name.last' : "Mukherjee",  'science.physics' : { $gte: 98 }, 
              'science.chemistry' : { $lte : 90, $gte : 85} }, 'name address.state address.district address.city hobbies');

   console.log(result1); 

   const result2 = await Student.find({ 'address.state' : /Texas/i, 'address.district' : /Atlanta/i, 'science.mathematics' : {$gt : 80, $lte : 90} }, 
                      'name.first name.last science.physics science.chemistry science.mathematics hobbies' );
   console.log(result2);

   const result3 = await Student.find({  'science.physics' : { $gte: 80, $lte : 85 }, 'science.chemistry' : { $gte : 90, $lte : 95},
                   'name.last' : "Mukherjee" }, 'name.first name.last address science.physics science.chemistry science.mathematics');
   console.log(result3);

   //likes: { $in: ['vaporizing', 'talking'] }
    const result4 = await Student.find({ 'name.first': /Sanlap/i, 'address.city' : /Atlanta/i , 'science.mathematics' : {$gt : 75, $lte : 85} }, 
                    'name address.state address.district address.city science hobbies');

   console.log(result4);

   const result5 = await Student.find({ hobbies : { $in : ['painting','sculpting'] }}, 'name.first name.last address science.chemistry hobbies');
   console.log(result5);

   const result6 = await Student.find({ hobbies : { $all : ["painting", "travelling", "sports", "judo"] }}, 'name address.state address.district address.city science hobbies');
   console.log(result6);

   const result7 = await Student.find({ hobbies : { $nin : ["gymming", "judo", "sculpting"] }}, 'name.first name.last address science.physics science.chemistry science.mathematics hobbies');
   console.log(result7);

}
```
Check this output here

```
PS C:\Users\USER\Downloads\mongoExpress\Queries_find> node src/find_1.js
[
  {
    name: { first: 'Mayuk', last: 'Mukherjee' },
    address: { state: 'California', district: 'Atlanta', city: 'Georgia' },
    _id: new ObjectId('65c513f52ab43c3d210b1659'),
    hobbies: [ 'sports', 'singing', 'dancing', 'painting' ]
  }
]
[
  {
    name: { first: 'Suryendu', last: 'Sarkar' },
    science: { physics: 74, chemistry: 82, mathematics: 86 },
    _id: new ObjectId('65c513f52ab43c3d210b165a'),
    hobbies: [ 'reading', 'singing', 'blogging', 'sculpting' ]
  }
]
[
  {
    name: { first: 'Aninda', last: 'Mukherjee' },
    address: { state: 'Massachuttes', district: 'Atlanta', city: 'Georgia' },
    science: { physics: 82, chemistry: 94, mathematics: 75 },
    _id: new ObjectId('65c513f52ab43c3d210b165b')
  }
]
[
  {
    name: { first: 'Sanlap', last: 'Gadai' },
    address: { state: 'Alabama', district: 'Oklohama', city: 'Atlanta' },
    science: { physics: 85, chemistry: 66, mathematics: 79 },
    _id: new ObjectId('65c513f52ab43c3d210b165c'),
    hobbies: [ 'coocking', 'drawing', 'sports', 'gymming' ]
  }
]
[
  {
    name: { first: 'Mayuk', last: 'Mukherjee' },
    address: { state: 'California', district: 'Atlanta', city: 'Georgia' },
    science: { chemistry: 88 },
    _id: new ObjectId('65c513f52ab43c3d210b1659'),
    hobbies: [ 'sports', 'singing', 'dancing', 'painting' ]
  },
  {
    name: { first: 'Suryendu', last: 'Sarkar' },
    address: { state: 'Texas', district: 'Atlanta', city: 'Denver' },
    science: { chemistry: 82 },
    _id: new ObjectId('65c513f52ab43c3d210b165a'),
    hobbies: [ 'reading', 'singing', 'blogging', 'sculpting' ]
  },
  {
    name: { first: 'Aninda', last: 'Mukherjee' },
    address: { state: 'Massachuttes', district: 'Atlanta', city: 'Georgia' },
    science: { chemistry: 94 },
    _id: new ObjectId('65c513f52ab43c3d210b165b'),
    hobbies: [ 'painting', 'travelling', 'sports', 'judo' ]
  }
]
[
  {
    name: { first: 'Aninda', last: 'Mukherjee' },
    address: { state: 'Massachuttes', district: 'Atlanta', city: 'Georgia' },
    science: { physics: 82, chemistry: 94, mathematics: 75 },
    _id: new ObjectId('65c513f52ab43c3d210b165b'),
    hobbies: [ 'painting', 'travelling', 'sports', 'judo' ]
  }
]
[
  {
    name: { first: 'Mayuk', last: 'Mukherjee' },
    address: { state: 'California', district: 'Atlanta', city: 'Georgia' },
    science: { physics: 99, chemistry: 88, mathematics: 97 },
    _id: new ObjectId('65c513f52ab43c3d210b1659'),
    hobbies: [ 'sports', 'singing', 'dancing', 'painting' ]
  }
]

```