Re: Find documents with case insensitive, ignoring accents and % like

From: Christian Cardozo <chriiscardozo@xxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Sun, 17 Apr 2016 10:53:01 -0700 (PDT)
Why ads?
I get a answer in Stackeroverflow that works for 
me: http://stackoverflow.com/questions/36647244/mongodb-how-to-find-documents-ignoring-case-sensitive-accents-and-percent-like

Em quinta-feira, 14 de abril de 2016 19:52:09 UTC-3, Christian Cardozo 
escreveu:

Hi, i'm trying to make a query that ignore case sensitive, ignore 
diacritic sensitive(accents) and use the same logic that % (percent) in SQL.
I have in my database names like: "Palácio Tiradentes", "Palácio da 
Cidade", etc. I would like to make a search that ignore those things and 
use the percent like logic

For example, I would make like this in SQL:

select * from collection where remove_accents(upper(name)) like '%' + 
remove_accents(upper(query)) + '%'

where + concats string.




I found same semi-solutions:

1. I can use regexp to make the percent logic, like this:

db.col.find( { "name": { $regex: new RegExp(".*" + query + ".*", "i")} } )

This ignore case sensitives and make the percent logic for "containing" 
query string. But still with accents problem.

2. $text index:

I found this on documentation: 
https://docs.mongodb.org/manual/reference/operator/query/text/

Ok, this can ignore case sensitive and accents. But, in this case I can't 
use regular expressions in a query like this:

db.col.find( { $text: { $search:  ".*rest.*"} } } )

The regular expression isn't interpreted.

Someone has a ideia how can I implement this search query?

Thanks for helping :)


-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/1db6b28a-d2b3-4d75-85ce-f7b073aa94a5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?