Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
How to query MongoDB similar to "like" ?
To implement similar to "like" functionality in MongoDB, use regular expressions with the find() method. MongoDB supports regex patterns using the /pattern/flags syntax to perform case-sensitive and case-insensitive searches.
Syntax
db.collection.find({ fieldName: /pattern/flags });
// Common patterns:
db.collection.find({ fieldName: /searchText/i }); // Case-insensitive
db.collection.find({ fieldName: /^searchText/ }); // Starts with
db.collection.find({ fieldName: /searchText$/ }); // Ends with
db.collection.find({ fieldName: /searchText/ }); // Contains (case-sensitive)
Sample Data
db.demo686.insertMany([
{ "FirstName": "Robert" },
{ "FirstName": "John" },
{ "FirstName": "ROBERT" },
{ "FirstName": "David" },
{ "FirstName": "robert" }
]);
{
"acknowledged": true,
"insertedIds": [
ObjectId("5ea55182a7e81adc6a0b395c"),
ObjectId("5ea55186a7e81adc6a0b395d"),
ObjectId("5ea5518fa7e81adc6a0b395e"),
ObjectId("5ea55195a7e81adc6a0b395f"),
ObjectId("5ea5519ba7e81adc6a0b3960")
]
}
Example: Case-Insensitive "Like" Query
Find all documents where FirstName contains "Robert" (case-insensitive) ?
db.demo686.find({ FirstName: /Robert/i });
{ "_id": ObjectId("5ea55182a7e81adc6a0b395c"), "FirstName": "Robert" }
{ "_id": ObjectId("5ea5518fa7e81adc6a0b395e"), "FirstName": "ROBERT" }
{ "_id": ObjectId("5ea5519ba7e81adc6a0b3960"), "FirstName": "robert" }
Key Points
- The
/pattern/iflag makes the search case-insensitive - Use
^for "starts with" and$for "ends with" patterns - Regular expressions provide flexible pattern matching similar to SQL LIKE
Conclusion
MongoDB's regex support with /pattern/flags syntax provides powerful "like" functionality. The i flag enables case-insensitive matching, making it ideal for flexible text searches across document fields.
Advertisements
