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/i flag 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.

Updated on: 2026-03-15T03:37:30+05:30

420 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements