Evaluation Query Operators in MongoDB
Introduction
Evaluation Query Operators in MongoDB are used to perform queries based on the value of fields and their comparison with other values or fields. These operators help in executing more complex queries by evaluating conditions and expressions. The primary evaluation operators include $expr
, $jsonSchema
, $mod
, $regex
, and $text
.
$expr
Operator
Description:
The $expr
operator allows you to use aggregation expressions within the query language. This operator enables complex queries that involve fields and expressions evaluated within the query itself.
db.products.find({
$expr: { $gt: ["$quantity", "$price"] }
});
$jsonSchema
Operator
Description:
The $jsonSchema
operator is used for schema validation. It allows you to specify a schema in JSON format to validate the structure and content of documents in a collection.
db.createCollection("users", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "age"],
properties: {
name: {
bsonType: "string",
description: "Name must be a string"
},
age: {
bsonType: "int",
description: "Age must be an integer"
}
}
}
}
});
$mod
Operator
Description:
The $mod
operator performs a modulo operation on a field and matches the results against the specified value. This is useful for queries where you need to find documents based on a mathematical condition.
db.numbers.find({
number: { $mod: [5, 1] }
});
$regex
Operator
Description:
The $regex
operator allows you to perform pattern matching using regular expressions. This operator is used to find documents where the value of a field matches a specific pattern.
db.users.find({
name: { $regex: "^John" }
});
$text
Operator
Description:
The $text
operator is used for text search in MongoDB. It performs a text search on string content within a field and is useful for full-text search operations.
db.articles.find({
$text: { $search: "MongoDB" }
});
Conclusion
Evaluation Query Operators in MongoDB provide powerful ways to query documents based on field values and their evaluation. The $expr
operator allows for complex queries involving expressions, while $jsonSchema
ensures data validation according to a specified schema. The $mod
operator handles mathematical conditions, $regex
enables pattern matching, and $text
supports full-text search. Utilizing these operators effectively can enhance the flexibility and precision of your queries.