Operators comparison logical only and or

🧩 Syntax:
//Operators
app.get("/getAllUsers", async (req, res) => {
  //Comparison operator
  var userDoc = await UserModel.find({ age: { $eq: 10 } });
  var userDoc = await UserModel.find({ age: { $ne: 10 } });
  var userDoc = await UserModel.find({ age: { $gt: 10 } });
  var userDoc = await UserModel.find({ age: { $gte: 10 } });
  var userDoc = await UserModel.find({ age: { $lt: 10 } });
  var userDoc = await UserModel.find({ age: { $lte: 10 } });
  var userDoc = await UserModel.find({ age: { $in: [10, 7, 20] } });

  //Logical Operators
  //(age >= 10 && age <= 15) && email = 'praveen@gmail.com'
  var userDoc = await UserModel.find({
    $and: [
      {
        age: { $gte: 10 },
      },
      {
        age: { $lte: 15 },
      },
    ],
  });

  //((age >= 10 && age <= 15) || (age == 0 && email = 'praveen5@gmail.com'))
  var userDoc = await UserModel.find({
    $or: [
      {
        $and: [
          {
            age: { $gte: 10 },
          },
          {
            age: { $lte: 15 },
          },
        ],
      },
      {
        $and: [
          {
            age: { $eq: 0 },
          },
          {
            email: "praveen5@gmail.com",
          },
        ],
      },
    ],
  });

  //age >=10
  //age <= 10
  //the second filter will override the first filter
  //of the age if the second filter field name is same as first
  var userDoc = await UserModel.find({
    age: { $gte: 10 },
    age: { $lte: 10 },
  });

  //age >=10
  //age == praveen@gmail.com
  var userDoc = await UserModel.find({
    age: { $gte: 10 },
    email: { $eq: "praveen@gmail.com" },
  });

  res.json(userDoc);
});