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
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' ]
}
]
Top comments (1)
This is find() query , a very useful concept in mongoose if you find it difficult to understand or any queries regarding it let me know or comment on my post