How to query MongoDB with "like" How to query MongoDB with "like" mongodb mongodb

How to query MongoDB with "like"


That would have to be:

db.users.find({"name": /.*m.*/})

Or, similar:

db.users.find({"name": /m/})

You're looking for something that contains "m" somewhere (SQL's '%' operator is equivalent to regular expressions' '.*'), not something that has "m" anchored to the beginning of the string.

Note: MongoDB uses regular expressions which are more powerful than "LIKE" in SQL. With regular expressions you can create any pattern that you imagine.

For more information on regular expressions, refer to Regular expressions (MDN).


db.users.insert({name: 'paulo'})db.users.insert({name: 'patric'})db.users.insert({name: 'pedro'})

Therefore:

For:

db.users.find({name: /a/})  // Like '%a%'

Output: paulo, patric

For:

db.users.find({name: /^pa/}) // Like 'pa%'

Output: paulo, patric

For:

db.users.find({name: /ro$/}) //like '%ro'

Output: pedro


In

  • PyMongo using Python
  • Mongoose using Node.js
  • Jongo, using Java
  • mgo, using Go

you can do:

db.users.find({'name': {'$regex': 'sometext'}})