Monday 6 January 2020

sql - How to query MongoDB with "like"?



I want to query something with SQL's like query:



SELECT * FROM users  WHERE name LIKE '%m%'



How to do I achieve the same in MongoDB? I can't find an operator for like in the documentation.


Answer



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 Regexp's '.*'), 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 info on regular expressions refer to this link
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...