Check out my books on Amazon at https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62
Subscribe to my email list now at http://jauyeung.net/subscribe/
Node.js is a popular runtime platform to create programs that run on it.
It lets us run JavaScript outside the browser.
In this article, we’ll look at how to start using Node.js to create programs.
Comparison Operators
We can use comparison operators to query for items with one or more quantities bigger than or less than some quantity.
For example, we can write:
const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);
async function run() {
try {
await client.connect();
const testCollection = await client.db("test").collection('test');
const result = await testCollection.insertMany([
{
name: "Popeye",
rating: 5
},
{
name: "KFC",
rating: 4
},
]);
console.log(result)
const query = { rating: { $gt: 4 } };
const cursor = testCollection.find(query);
await cursor.forEach(console.dir);
} finally {
await client.close();
}
}
run().catch(console.dir);
The $gt
key means greater than, so we search for the documents that have rating
bigger than 4.
Logical Operators
We can also add the $not
key to negate some query.
For example, we can write:
const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);
async function run() {
try {
await client.connect();
const testCollection = await client.db("test").collection('test');
const result = await testCollection.insertMany([
{
name: "Popeye",
rating: 5
},
{
name: "KFC",
rating: 4
},
]);
console.log(result)
const query = { rating: { $not: { $gt: 4 } } };
const cursor = testCollection.find(query);
await cursor.forEach(console.dir);
} finally {
await client.close();
}
}
run().catch(console.dir);
We find all the documents that has rating
not greater than 4.
This means we find the items with rating
less than or equal to 4.
We can query for more than one property in a query.
For instance, we can write:
const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);
async function run() {
try {
await client.connect();
const testCollection = await client.db("test").collection('test');
const result = await testCollection.insertMany([
{
name: "Popeye",
rating: 5,
qty: 100
},
{
name: "KFC",
rating: 4,
qty: 120
},
]);
console.log(result)
const query = {
rating: { $eq: 5 },
qty: { $gt: 90 }
};
const cursor = testCollection.find(query);
await cursor.forEach(console.dir);
} finally {
await client.close();
}
}
run().catch(console.dir);
With this query, we search for any document with rating
equal to 5 and qty
larger than 90.
Evaluation Operators
There are evaluation operators we can use to do more queries.
The $mod
operator lets us find the items with a quantity that has a given remainder.
For example, we can write:
const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);
async function run() {
try {
await client.connect();
const testCollection = await client.db("test").collection('test');
const result = await testCollection.insertMany([
{
name: "Popeye",
rating: 5,
qty: 100
},
{
name: "KFC",
rating: 4,
qty: 121
},
]);
console.log(result)
const query = {
qty: { $mod: [10, 0] }
};
const cursor = testCollection.find(query);
await cursor.forEach(console.dir);
} finally {
await client.close();
}
}
run().catch(console.dir);
We make the query with the $mod
operator. The first entry of the array is the number we divide by.
And the 2nd entry is the remainder we’re looking for after we divide by the first number.
Therefore, we should get the first entry returned.
Conclusion
We can use various comparison operators to make queries for documents with MongoDB.